我正在尝试为Tkinter中的按钮数组生成带有变量参数的回调函数,但问题是只为所有回调函数传递了最后一项。例如,我有类似的东西:
a = [0, 1, 2]
btn = []
for i in range(0,3):
btn.append(Button(frame, text='something', command=lambda: funct(a[i])))
对于btn列表中的每个按钮,a
列表中的最后一项2
将传递给函数funct()
。但是,我想要的是a[0]
传递给第一个按钮funct()
,第二个按钮传递a[1]
,依此类推。我该如何解决这个问题?
答案 0 :(得分:5)
for i in range(0,3):
btn.append(Button(frame, text='something',
command=lambda a=a, i=i: funct(a[i])))