在下面的代碼中,我打算有兩個按鈕,分別將'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