Так что я сейчас пытаюсь изучить python, и я следую этому руководству на youtube. Мне это удалось. Но когда я запускаю его я получаю сообщение об ошибке:Python, Instance не имеет атрибута
Traceback (most recent call last):
File "C:/Users/Frederik/Desktop/test.py", line 29
app = Application(root)
File "C:/Users/Frederik/Desktop/test.py", line 11, in __init__
self.create_widgets()
AttributeError: Application instance has no attribute 'create_widgets'
Это мой код:
from Tkinter import *
class Application(Frame):
""" GUI with click counter """
def __init__(self, master):
""" Init the frame """
Frame.__init__(self,master)
self.grid()
self.button_clicks =0 #Counts the button clicks
self.create_widgets()
def create_widgets(self):
""" Create button widget """
self.button = Button(self)
self.button["text"] = "Total Clicks: 0"
self.button["command"] = self.update_count
self.button.grid()
def update_count(self):
""" Increase click count """
self.button_clicks += 1
self.button["text"] = "Total Clicks: " + str(self.button_clicks)
root = Tk()
root.title("Button Counter")
root.geometry("200x100")
app = Application(root)
root.mainloop()
Это фактическое отступом в файле? –
Вам нужно отделить весь 'def __init__' одним уровнем отступов, чтобы гарантировать, что метод принадлежит типу. – poke
Вы фактически определяете функции внутри функций. у вас 'def' на том же уровне отступов, и все будет хорошо. –