导入tkinter,制作几个按钮,点击每个按钮时打印出一个变量值,我期待的效果是:三个按钮分别打印出0,1,2。但结果,得到的都是2。lambda传值怎么会这样??搞不懂,哪位老师赐教一下
import tkinter as tk
mywin = tk.Tk()
def fun(val):
print(val)
for i in range(0,3):
tk.Button(mywin, text='btn'+str(i), width=20, height=2, command=lambda:fun(i)).pack()
mywin.mainloop()
Italink 老师说lambda传值是传的变量i的引用,那么怎么样让lambda传递i的值,而不是i的引用呢??
tk.Button(mywin, text='btn'+str(i), width=20, height=2, command=lambda:fun(i)).pack() 这句要怎么写才行呢?
Italink 老师能再说的细一点吗? 我初学Python, 不懂的地方多......