2011-04-17 54 views
0

嗨 我只是执行以下代码:如何摆脱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:名字 'LabelDemo' 没有定义。

可能是什么原因?

+0

你的代码在我的电脑上运行良好,所以我怀疑还有别的你做错了。 – NPE 2011-04-17 09:44:04

+0

发布完整的回溯,它通常会告诉你哪一行是哪个文件和哪个代码中的错误。 – 2011-04-17 09:45:51

+0

回溯(最近通话最后一个): 文件 “warning.py”,3号线,在 类LabelDemo(帧): 文件 “warning.py”,14号线在LabelDemo LabelDemo()主循环() NameError:名称'LabelDemo'未定义 – Sahar 2011-04-17 09:53:55

回答

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不知道怎么做的问题。但在编辑中,缩进将在之前被破解的地方进行修复。

+0

好吧,我现在已经做了如果__name__ ==“__main__”:if __name__ ==“__main_”: – Sahar 2011-04-17 10:28:59

+0

,它现在没有给出任何错误,但没有输出 – Sahar 2011-04-17 10:29:18

+0

@Sahar,缩进意味着空白。空格或制表符。删除'if __name__ ..'行之前的所有空格和制表符,所以它的格式与编辑后自问题中的代码一样。 'if'应该在您的文本编辑器的左边,列号为1. – 2011-04-17 10:33:03