当我给something()参数*args时,是否有人介意花点时间解释一下为什么这段代码有效?似乎它应该在没有它的情况下工作,因为某个东西在没有任何参数的情况下被调用。。。难倒了。。你知道吗
from Tkinter import *
mGui = Tk()
mGui.geometry('570x130+700+200')
mGui.resizable(width = FALSE, height = FALSE)
mGui.title('Title')
def something(*args):
if someValue.get() == 'tom':
mLabel2.lift()
else:
mLabel2.lower()
mylist = ['henry', 'tom', 'phil']
someValue = StringVar()
someValue.trace('w', something)
mLabel = Label(text = ' name:')
mLabel.grid(row = 0, column = 0, sticky = E)
mLabel2 = Label(text = 'Success')
mLabel2.grid(row = 0, column = 0, sticky = E)
mLabel2.lower()
someMenu = OptionMenu(mGui, someValue, *mylist)
someMenu.grid(row = 0, column = 1, sticky = W)
someMenu.config(width = 14, anchor = W)
mGui.mainloop()
**Edit,程序将初始化,但只要我从someMenu中选择一个值,它就会抛出TypeError:something()不带参数(给定3个)
用3个参数调用} documentation 。你知道吗
trace
的回调函数:name1
,name2
,op
,根据Tcl ^{因此回调函数的形式如下:
但是,在有问题的代码中,
something
不使用任何参数。因此函数使用abitrary argument list(*args
)隐式忽略它们。你知道吗相关问题 更多 >
编程相关推荐