所以我写了一个代码,该代码应该可以获取树中给定节点的父代。这是伪代码。从根开始,返回语句不执行
def parent(self, child):
if right child exists:
if the right child == child:
return self
else: self.right.parent(child)
if left child exists:
if the left child == child:
print('f')
return self
else: self.left._get_parent(node)
我不停地遇到这个问题一遍又一遍。 对于if the left child == child:
声明,函数DOES在找到the left child == child
或the right child == child
时输入if
语句。
但是,return语句不会执行此操作。我知道这一点,因为当我写if the left child == child:
并在写完print('f')
之后,它确实打印了f
,但是它并没有返回self
。有谁知道为什么和谁能提供一个解决方案来解决这个问题?
此外,有没有人知道如何一次返回两个语句而不是元组或列表? 例如,如果我想回到1和2,
def x(n):
return 1, 2
这将返回(1, 2)
..有什么办法为它不会返回它作为一个元组?只是为了正常返回它。我这样问,因为当涉及到递归时,我想调用1 AS和2的相同函数,而不是在元组(1, 2)
上。
'1,2' ** **是一个元组。圆括号是句法糖,真的。返回一个元组是*返回多个值的方式。只需*索引*返回值或使用元组拆包。 – 2013-04-05 15:36:46