我对Python代码中调用某个函数(tree\u insert)的方式感到困惑。在我看来,它的签名在调用中被破坏了。有人能澄清一下吗?具体来说,tree\u insert有参数self和data。但是,在调用中,第一个参数是数据,第二个参数是自左. 似乎有一个不一致,但代码工作。你知道吗
Python not defined recursive function?
class BinaryTree():
def __init__(self, data):
self.left = None
self.right = None
self.data = data
def tree_insert(self, data):
if (data < self.data):
if (self.left != None):
self.tree_insert(data, self.left)
else:
self.left = BinaryTree(data)
else:
if (self.right != None):
self.tree_insert(data, self.right)
else:
self.right = BinaryTree(data)
尽管调用方式明显不正确,但函数仍能正常工作。这里有一些Python的特殊性。。你知道吗
在那个(6x)的代码上,投票,并接受答案根本不工作。运行时会生成错误:
正如你所发现的,这个电话毫无意义:
应该是:
下面是更正的代码:
一些测试代码:
如果我们借用
display()
code from this answer,我们会得到如下的二叉树:相关问题 更多 >
编程相关推荐