Хотя программа Эли Кортрайта будет работать нормально ¹, то, что вы действительно хотите, это всего лишь способ перенастроить после создания экземпляра любой атрибут, который вы могли установить при создании экземпляра². Это можно сделать с помощью метода configure ().
from Tkinter import Tk, Button
def goodbye_world():
print "Goodbye World!\nWait, I changed my mind!"
button.configure(text = "Hello World!", command=hello_world)
def hello_world():
print "Hello World!\nWait, I changed my mind!"
button.configure(text = "Goodbye World!", command=goodbye_world)
root = Tk()
button = Button(root, text="Hello World!", command=hello_world)
button.pack()
root.mainloop()
fine «хорошо», если вы используете только мышь; Если вы хотите использовать табуляцию и использовать [Пробел] или [Ввод] на кнопках, вам придется также реализовывать (дублируя существующий код) события нажатия клавиш. Настроить опцию command
через .configure
гораздо проще.
² единственный атрибут, который не может измениться после создания экземпляра, это name
.