NameError:未定义名称“主”

时间:2019-11-10 21:06:41

标签: python tkinter

我一直都收到此错误,我不明白可能是什么错误。 我没有编程方面的经验,所以我需要您的帮助。 如果您帮助我,意大利面条怪兽会保护您至少一个月。

class App:
    def __init__(self, master):

            self.master = master
            self.frame = Frame(self.master)
            self.frame.place(x=self.rx(), y=self.ry())
            self.button = Button(self.frame, text="Quit", fg="red", command=self.destroy)
            self.button.pack(side = LEFT)

    def destroy(self):
            self.__init__(self, master)
            self.frame.destroy()

运行后,我收到错误消息:

line 23, in destroy
    self.__init__(self, master)
NameError: name 'master' is not defined

1 个答案:

答案 0 :(得分:0)

问题在这里

def destroy(self, master): # <----- Corrected.
        self.__init__(self, master)
        self.frame.destroy()

我认为您应该这样做:

def destroy(self):
        self.frame.destroy()

在启动Class之后和调用App.destroy()之前,该类已经具有self.frame对象。无需重新定义__init__