如何消除Python中的NameError?
你好,
我刚刚执行了以下代码:
from Tkinter import *
class LabelDemo( Frame ):
def __init__( self ):
Frame.__init__( self )
self.pack( expand = YES, fill = BOTH )
self.master.title( "Labels" )
self.Label3 = Label( self, bitmap = "warning" )
self.Label3.pack( side = LEFT )
if __name__ == "__main__":
LabelDemo().mainloop()
结果出现了一个错误,提示“NameError: name 'LabelDemo' is not defined.”
这可能是什么原因呢?
1 个回答
2
这段代码在我这里也能正常运行。可能是某个地方的缩进出了问题。这个文件是完整的吗?你有没有把制表符和空格混在一起?
编辑:
这是你的错误追踪信息:
Traceback (most recent call last):
File "warning.py", line 3, in <module> class LabelDemo(Frame):
File "warning.py", line 14, in LabelDemo LabelDemo().mainloop()
NameError: name 'LabelDemo' is not defined
这段信息说明你在定义 LabelDemo(Frame)
类的时候,调用了 LabelDemo().mainloop()
。这意味着你把 if __name__ == "__main__"
的缩进弄错了。把 if __name__ ..
这一行的缩进去掉,应该就能正常工作了。
最后编辑:
问题中有个编辑,格式化了代码,可能是因为提问者不知道怎么做。不过在这个编辑中,之前出错的缩进也被修复了。