Python 我的函数即使在上面一行打印时也不返回任何值,我缺少什么?
即使在上面一行打印变量时,我的recrusive函数也不会返回None 当我调用函数时,它会精确地打印我想要的内容,但不会返回任何内容Python 我的函数即使在上面一行打印时也不返回任何值,我缺少什么?,python,function,return,Python,Function,Return,即使在上面一行打印变量时,我的recrusive函数也不会返回None 当我调用函数时,它会精确地打印我想要的内容,但不会返回任何内容 def nRound(vector, root): tempRoot = root a = vector.pop() b = vector.pop() if a+b < 1.0: vector.append(a+b) rootn = Node(a+b) rootn.right
def nRound(vector, root):
tempRoot = root
a = vector.pop()
b = vector.pop()
if a+b < 1.0:
vector.append(a+b)
rootn = Node(a+b)
rootn.right = tempRoot
rootn.left = Node(b)
nRound(vector, rootn)
else:
rootn = Node(a+b)
rootn.right = tempRoot
rootn.left = Node(b)
print(rootn)
return rootn
def nRound(向量,根):
tempRoot=根
a=vector.pop()
b=vector.pop()
如果a+b<1.0:
vector.append(a+b)
rootn=节点(a+b)
rootn.right=临时根
rootn.left=节点(b)
nRound(向量,根)
其他:
rootn=节点(a+b)
rootn.right=临时根
rootn.left=节点(b)
打印(rootn)
返回根
我不明白为什么它返回None而不是rootn。提前感谢。您的函数是递归的,只有基本大小写返回值。递归调用中的值不会向上传递:
nRound(vector, rootn)
这意味着只有当函数立即到达基本情况时,外部调用方才会获得一个值。上面的一行应该是
return nRound(vector, rootn)
您必须
在递归调用中返回nRound(vector,rootn)
您可能需要if
块中的return
语句谢谢您的时间,但它对我不起作用。。。我使用调试器,当它到达dereturn rootn
时,编译器返回递归函数,当我希望它以结果“rootn”离开整个函数时。也许我在Python中的递归函数中缺少了一些基础知识。。。