如何摆脱Python中的NameError?

时间:2011-04-17 09:41:06

标签: python

您好 我刚刚执行了以下代码:

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:名称'LabelDemo'未定义。

可能是什么原因?

1 个答案:

答案 0 :(得分: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().mainloop()的调用发生在LabelDemo(Frame)的类定义中。这意味着您已经缩进了if __name__ == "__main__"。删除if __name__ ..行周围的缩进,它应该可以正常工作。

最终编辑:

对代码进行格式化的问题进行了编辑,大概是因为OP不知道怎么做。但是在编辑中,缩进将在以前被破坏的地方进行修复。