Python 为什么这段代码只在something()中使用*args?

Python 为什么这段代码只在something()中使用*args?,python,function,tkinter,arguments,Python,Function,Tkinter,Arguments,当我给something()参数*args时,是否有人介意花点时间解释一下为什么这段代码可以工作?似乎它应该在没有它的情况下工作,因为某些东西在没有任何参数的情况下被调用。。。难倒 from Tkinter import * mGui = Tk() mGui.geometry('570x130+700+200') mGui.resizable(width = FALSE, height = FALSE) mGui.title('Title') def something(*args):

当我给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()

**编辑时,程序将初始化,但只要我从someMenu中选择一个值,它就会抛出TypeError:Someone()不带任何参数(给定3个)

调用
跟踪的回调函数时有3个参数:
name1
name2
op
,根据

因此,回调函数应为以下形式:

def callback(name1, name2, op):
    pass

但是,在问题代码中,
something
没有使用任何参数。因此函数使用(
*args
)隐式忽略它们。

谢谢,这就解释了!