Форум сайта python.su
Всем добрый вечер.
Разница в том что в процедурном стиле все работает а в ООП не хочет.
win = Frame() win.pack() Label(win, text='Basic demos').pack() for(key, value) in demos.items(): Button(win, text=key, command=value).pack(side=TOP, fill=BOTH) win.mainloop()
class Demo(Frame): def __init__(self, parent=None, **options): Frame.__init__(self, parent, **options).pack() Label(self, text='Basic demos').pack() for(key, value) in demos.items(): Button(self, text=key, command=value).pack(side=TOP, fill=BOTH) Demo.mainloop()
Demo.mainloop()Не пойму почему ругается что отсутствует self
TypeError: mainloop() missing 1 required positional argument: ‘self’
Офлайн
-Demo.mainloop()
+Demo().mainloop()
-Frame.__init__(self, parent, **options).pack()
+Frame.__init__(self, parent, **options)
+self.pack()
Офлайн
sp3 Спасибо, теперь все работает.
Офлайн
sp3
Высокоинтеллектуальный выопрос.
Я не пользуюсь 3. В моем случае:
+Demo.mainloop() -Demo().mainloop()
Отредактировано 4kpt (Дек. 9, 2012 21:31:43)
Офлайн
4kpt
Здесь Demo - класс
Demo() - экземпляр этого класса
так что неправильно.
Офлайн
Понял. Просто я предварительно присваиваю экземпляр класса какой-нибуть переменной, а потом выполняю .mainloop. Стало интересно, как это сделать одной строкой. Спасибо.
Офлайн