Python продолжает показывать «объект не имеет такого атрибута» - PullRequest
0 голосов
/ 15 июня 2019

по какой-то причине при выполнении следующих строк кода возникает ошибка, в которой говорится: Объект 'car' не имеет атрибута 'time_int' Класс называется car.

Хотя я включил методы в один и тот же класс, каждый раз, когда я пытаюсь вызвать self.time_int, выше появляется ошибка, вот фрагмент кода:

# the __init__ also has the buttons that connect to other methods, but I just included the relevant one

    class car:


    def __init__(self,master):

        self.helv = tkinter.font.Font(family ="Helvetica", size = 20, weight = 'bold')

        self.master = master

        master.title('RC car controls')
        self.background_image = PhotoImage(file='1.gif') #upload background picture
        self.background_label = Label(master, image=self.background_image)
        self.background_label.image = self.background_image
        self.background_label.place(x=0,y=0,relwidth=1, relheight=1) #placing of background picture
        master.geometry("500x500")
        master.resizable(0, 0)

        self.acl = Button(master, command = lambda:    [self.set_down(),self.set_up()], image = self.img,
                      padx = 4, pady = 4)
        self.acl.place(relx = 0.7, rely = 0.5)


    def set_down(self):
        self.acl.bind('<Button-1>', self.accel_gn)


    def set_up(self):
        self.acl.bind('<ButtonRelease-1>',self.accel_fn)

    def accel_fn(self,accel_fn):  ##### ACCELERATION SLOWS DOWN
        self.start = time()
        print('up')
        self.time_int = (self.start-self.end)
        print(self.time_int)

    def accel_gn(self,accel_gn): ##### ACCELERATION INCREASES
        self.end = time()
        a = speed()
        print('down')
        if 1 > self.time_int > 0:
            print('current motor speed:', a.final_speed())

Ошибка возникает во втором методе accel_gn(self,accel_gn) в строке оператора if. Чтобы уточнить, кнопка в основном проверяет, как долго она нажата и вызывает метод в другом классе с именем final_speed ().

Спасибо

РЕДАКТИРОВАТЬ: когда я нажимаю кнопку во второй раз в режиме ожидания, она просто продолжает работать, и ошибка не останавливает его. Ошибка появляется только при первом нажатии кнопки.

1 Ответ

0 голосов
/ 15 июня 2019

Я думаю, вам нужно определить self.time_int в accel_gn

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