我试图从一个递归函数返回一个列表,每一个深度都会附加到这个列表中,但是最终返回的列表总是空的。 我不是很有经验的Python,所以这可能是个小错误。在
代码如下:
import pymel.core as pm
def getParent(jnt):
something = pm.listRelatives(jnt, parent=True);
if something:
print 'got parent: ' + something[0]
return something[0]
else:
return None
def getAllParents(jnt):
parents = []
parents.append(jnt)
prnt = getParent(jnt)
if prnt == None:
return parents
else:
prnts = parents.insert(0, getAllParents(prnt))
return prnts
selection = pm.ls(sl=True)[0]
parents = getAllParents(selection)
print '\n'
print parents
pm.listRelatives(jnt, parent=True);
返回一个字符串列表,如果不为空,我将获取其中的第一个字符串。在
输出如下:
^{pr2}$感谢任何帮助。在
这里:
^{pr2}$list.insert()
(以及所有就地修改列表的方法-sort()
等)返回None
。你想要:相反。在
请记住,您使用的是列表函数,如
append
,insert
传递列表。在这种情况下,你会得到奇怪的结果。 例如您的
getAllParents
方法接受一个字符串并返回一个列表。然后将这个列表插入另一个列表,使其成为字符串列表和字符串列表。。。在要连接两个列表,只需使用
+
运算符,因此:相关问题 更多 >
编程相关推荐