<分区>
每当我通过循环在 tkinter 中动态创建按钮时,通过循环调用一个函数并为其分配一个值,如下所示:
from tkinter import *
root=Tk()
def add(text):
print(text)
for i in ('a', 'b', 'c'):
Button(root, text=i, command=lambda:add(i)).pack()
mainloop()
我总是遇到这样的问题,无论我按什么按钮,函数都是用循环中的最后一个值调用的。在这种情况下,它只是打印 c
我按下的任何按钮。我不知道这是 lambda
或 tkinter
的问题,还是我的编程问题,但我想知道如何解决它。
我尝试过使用 copy.copy
、copy.deepcopy
(在 lambda
函数和字符串上)和 [ :]
和 str
(在字符串上)。