gpt4 book ai didi

python - 只有最后一个变量传递给回调函数

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:30 24 4
gpt4 key购买 nike

我正在尝试为 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]按钮等。我该如何解决这个问题?

最佳答案

You're doing closures wrong.

for i in range(0,3):
btn.append(Button(frame, text='something',
command=lambda a=a, i=i: funct(a[i])))

关于python - 只有最后一个变量传递给回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com