在下面的代码中,我打算有两个按钮,分别将'0'和'1'分别打印到标准输出时。然而,当程序运行时,它们都会打印出'1',这是我在迭代中的最后一个值。为什么?Python的lambda迭代不能按预期工作
import Tkinter as tk
import sys
root = tk.Tk()
for i in range(0,2):
cmd = lambda: sys.stdout.write(str(i))
tk.Button(text="print '%d'" % i,command=cmd).pack()
root.mainloop()
物品为不相关的蟒蛇 – newacct 2010-07-01 07:00:26
它链接到Python的两个类似StackOverflow的问题,这个问题超越与Lambda和mutables大多数语言。 – Brian 2010-07-01 07:15:00