python - 从递归函数返回的列表总是空的
问题描述
我试图从递归函数返回一个列表,为每个深度附加到这个列表,但最终返回的列表总是空的。我不是很有经验的pythonian,所以这可能是一个微不足道的错误。
这是代码:
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);
返回一个字符串列表,如果它不为空,我将获取第一个字符串。
这是输出:
got parent: joint3
got parent: joint2
got parent: joint1
None
任何帮助表示赞赏。
解决方案
这里:
def getAllParents(jnt):
# ...
prnts = parents.insert(0, getAllParents(prnt))
return prnts
list.insert()
(以及所有修改列表的方法sort()
等)返回None
. 你要:
parents.insert(0, getAllParents(prnt))
return parents
反而。
推荐阅读
- angular - Jasmine 测试错误:超时 - 5000 毫秒内未调用异步回调(由 jasmine.DEFAULT_TIMEOUT_INTERVAL 设置)
- c# - 如何根据用户输入创建数组长度
- git - 在 'git push origin' 之后,'origin/master' 没有得到更新(使用脚本时)
- visual-studio - AzureServiceTokenProvider().GettokenAsync() 为不再登录的帐户获取令牌
- python - 如何将 IP 和 PORT 过滤为两个变量
- javascript - 发送帖子数据并重定向到没有 AJAX 的另一个页面
- android - Android Studio模拟器在运行时目录上的所有权错误
- angular - 哪个版本的 rxjs 不引用 rxjs-compat?
- linux - 将文件(脚本)保存在 WSL 文件系统上是否有任何好处
- .net - .net HttpClient(Factory) 注入 HttpMessageHandlers 的子集