Форум сайта python.su
Допустим я создал кнопку, которая вызывает функцию.
def create_widgets(self, master): """Создает интерфейс""" self.btt1 = Button(master,text = "Покормить",command = self.feed)
def create_widgets(self, master): """Создает интерфейс""" self.btt1 = Button(master,text = "Покормить",command = self.feed(master))
Отредактировано Straik32423 (Авг. 23, 2016 16:23:48)
Офлайн
Классическая ошибка. Нужно понять, что такое объект функция и объект результата функции.
В Вашем случае можно использовать lambda
def create_widgets(self, master): """Создает интерфейс""" self.btt1 = Button(master,text = "Покормить",command = lambda: self.feed(master))
Офлайн
Благодарю.
4kpt_IVА как понять? Где можно об этом почитать? (Желательно, на русском)
Нужно понять, что такое объект функция и объект результата функции.
Офлайн
Эммм. Попытаюсь простыми словами.
# Это функция def call(c): return c # Это ссылка на объект функции a = call # Т.е можно использовать как объект print(a(12)) # А вот это уже объект результата b = call(13) # В результате b ссылается не на функцию, а на результат ее выполнения.
Офлайн
4kpt_IVХорошо, спасибо, я понял.
Эммм. Попытаюсь простыми словами.
Офлайн
Да это общее понятия. Если я не ошибаюсь, то в старой книге по tkiner, но она на инглише. Ну и это общие знания языка. Ну и еще. Чаще всего лямбду не используют. БОльшая часть информации, которая Вам нужна закопана в event при использовании bind…
Офлайн