NameError: имя 'master' не определено - PullRequest
0 голосов
/ 11 ноября 2019

Я постоянно получаю эту ошибку, и я не понимаю, что может быть не так. Я не настолько опытен в программировании, поэтому мне нужна ваша помощь. Если вы мне поможете, летающий спагетти-монстр будет защищать вас не менее месяца.

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 голосов
/ 11 ноября 2019

Проблема здесь

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

Я думаю, вы должны сделать это следующим образом:

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

После того, как вы инициировали Class, и до того, как вы позвоните App.destroy()класс уже имеет self.frame объект. Нет необходимости переопределять __init__.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...