如何消除Python中的NameError?

1 投票
1 回答
4383 浏览
提问于 2025-04-16 15:54

你好,

我刚刚执行了以下代码:

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__ .. 这一行的缩进去掉,应该就能正常工作了。

最后编辑:

问题中有个编辑,格式化了代码,可能是因为提问者不知道怎么做。不过在这个编辑中,之前出错的缩进也被修复了。

撰写回答