我有以下函数,并且它不时地返回错误“全局名称x未定义”,它在跳转到return语句时发生。我希望帮助改进此代码而不会丢失功能。任何有识之士将不胜感激。Python:帮助提高递归函数
def label(tree, instance, class_labels):
'''Returns the label at the end of every "branch" in the tree'''
global x
for row in tree:
if row[0] == instance[row[1]]:
if row[2][0] in class_labels:
x = row[2][0]
return x
else:
x = label(row[2], instance, class_labels)
return x
是否有*任何理由*对该代码使用'全球x'?你没有在代码中访问它,并且你已经在返回它,那么使'x'成为全局的目的是什么? (而它之所以抱怨是因为如果它直接跳转到'x'变量'x'将是不确定的。) – Rufflewind 2014-12-03 06:08:20
Rufflewind的评论是答案(加上一点点好的建议) – 2014-12-03 06:13:11