我试图打印出我的二叉树的预购形式,但我遇到了这些错误。我还在学习python,所以我不太清楚到底发生了什么。但我认为我的打印功能不能正常工作。但不太清楚preorder_print为什么会出现全局名称问题=/
输出:
>>> from BST_tree import *
pre order:
<BST_tree.Node instance at 0x0000000002AA0C88>
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
from BST_tree import *
File "BST_tree.py", line 51, in <module>
preorder_print(r)
File "BST_tree.py", line 27, in preorder_print
preoder_print(root.left)
NameError: global name 'preoder_print' is not defined
我的代码:
^{pr2}$
这是一个简单的输入错误:您定义了
preorder_print
,但试图调用preoder_print
。在当您看到这样的错误消息时:
……不要太担心“全球”部分。问题是名称在任何地方都没有定义,甚至在全局变量中也没有定义。*所以,开始寻找为什么没有定义它。在
像这样的打字错误很容易犯,所以我通常要检查的第一件事就是:从错误消息中复制字符串,然后粘贴到搜索中。在
*这有点过于简单,但现在已经足够好了。它的意思是,首先编译器在编译时找不到它作为本地名或闭包名,所以假设它是全局名,然后解释器在运行时找不到它作为全局名或内置名。在
相关问题 更多 >
编程相关推荐