AttributeError: у объекта «Приложение» нет атрибута «метка» - PullRequest
0 голосов
/ 25 ноября 2018

Мой код дает эту ошибку, кто-то может мне помочь.Когда я помещаю метку в rand_num () или tool (), не имеет значения, что выдает ту же ошибку.Как можно присвоить атрибут метке?

from tkinter import *
import random

class Application(object):
def __init__(self):
    self.rand_num()
    self.tool()

def tool(self):
    self.label = Label(fg="white", bg="#61380B", font="Helvetica 12 bold")
    self.label["text"] = self.list

    self.label.pack()
    self.open = Button(text='Hit', command=self.rand_num())
    self.open.pack()
    self.ok = Button(text='Exit', command=root.quit)
    self.ok.pack()

def rand_num(self):
    self.list = []
    for i in range(6):
        rand = random.randint(1, 49)
        if rand not in self.list:
            self.list.append(rand)
    self.list.sort()
    self.label["text"] = self.list


if __name__ == '__main__':
    root = Tk()
    root.geometry('300x100+500+100')
    app = Application()
    mainloop()

редактировать: я редактировал вот так и так хорошо работает!

from tkinter import *
import random


class Application(object):

def __init__(self):
    self.tool() #Deleted that line

def rand_num(self):
    self.list = []
    for i in range(6):
        rand = random.randint(1, 49)
        if rand not in self.list:
            self.list.append(rand)
    self.list.sort()
    self.label["text"] = self.list

def tool(self):
    self.label = Label(text='Please enter hit', #Added 'text' attribute
                       fg="white",
                       bg="#61380B",
                       font="Helvetica 12 bold")
    #Deleted that line

    self.label.pack()
    self.open = Button(text='Hit', command=self.rand_num)
    self.open.pack()
    #self.ok = Button(text='Exit', command=root.quit)
    #self.ok.pack()




if __name__ == '__main__':
    root = Tk()
    root.geometry('300x100+500+100')
    app = Application()
    mainloop()

Измененные части выше AttributeError: у объекта «Приложение» нет атрибута »метка '

1 Ответ

0 голосов
/ 25 ноября 2018

Вы определяете self.label в методе tool().Ошибка, вероятно, происходит, потому что вы вызываете метод rand_num() перед методом tool().

...