В приведенном ниже коде я намерен иметь две кнопки, и при нажатии каждой из них «0» и «1» должны быть напечатаны на стандартный вывод соответственно. Однако, когда программа запускается, они оба выводят «1», что является последним значением, которое я имел в итерации for. Почему?
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()