【问题标题】:integer, list Maya Python concatenation整数,列出 Maya Python 连接
【发布时间】:2017-04-04 11:31:45
【问题描述】:

我有问题。我正在编写 Python-Maya 脚本。我正在尝试将一个对象列表挤出到另一个对象列表中,但是当我尝试这样做时出现以下错误(错误不是我开始 for 循环的行):

 Error: line 1: TypeError: file <maya console> line 45: range() integer end argument expected, got list.
#
def extrude_():
    for i in range(listOfCircles):
        mc.select(listOfCurves[0], all=True)
        mc.select(listOfCircles[0], all=True)
        mc.extrude(listOfCurves[0]+str(i), listOfCircles[0]+str(i), et=2)

        return

listOfCircles 和 listOfCurves 是全局变量,所以我认为我不需要将它们传递给函数..

【问题讨论】:

  • 这个错误告诉你你需要知道什么:range() 函数需要一个整数作为它的参数而不是一个列表。你可能想要的是range(len(listOfCircles))
  • 我之前尝试使用 range(len(listOfCircles)) 运行代码,但它给了我这个错误:# Error: line 1: TypeError: file line 49: can only concatenate列出(不是“str”)以列出#
  • 通过在循环中打印出来来检查 listOfCurves[0] 的内容。如果它是一个列表,那么您不能在该列表中“添加”(+)一个字符串。
  • 只使用 for i, curve in enumerate(listOfCircles): ?
  • @kartikg3 我已经检查了列表...结果是:circle_0 circle_1 circle_2 circle_3 circle_4 ... ... circle_252 circle_253 circle_254 curve_0 curve_1 curve_2 curve_3 ... ... 。 ..curve_252curve_253curve_254curve_0 到底我有curve_0是不是很奇怪? ############## 我试过 for i, curve in enumerate(listOfCircles): 正如你所建议的,但没有任何改变。错误总是一样的

标签: python maya curves nurbs


【解决方案1】:

根据我对您解释的内容的理解,您希望实现的代码如下:

def extrude():
    for i in range(len(listOfCircles)):
        mc.extrude(listOfCurves[i], listOfCircles[i], et=2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2020-02-02
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 2012-07-16
    相关资源
    最近更新 更多