下面的代码创建了10个按钮。当用户单击该按钮时,我们需要知道单击了哪个按钮。
import tkinter as t
def click_button(number):
print("you clicked %d" % number)
root = t.Tk()
for number in range(0, 10):
btn = t.Button(root, text=number, padx=15, command=lambda: click_button(number))
btn.grid(row=0, column=number)
root.mainloop()发布于 2020-04-06 08:30:55
通过简单的循环测试,number上的闭包似乎是参考的,但是我不确定这是正确的行为。
这是使用partial工作的,毫无疑问,它在构造部分时捕获了number的值:
import functools as fc
import tkinter as t
def click_button(number):
print("you clicked %d" % number)
root = t.Tk()
for number in range(0, 10):
btn = t.Button(
root,
text=number,
padx=15,
command=fc.partial(click_button, number))
btn.grid(row=20, column=number)
root.mainloop()https://stackoverflow.com/questions/61055229
复制相似问题