我正在写tkinter GUI。我使用list来存储我的tkinter按钮实例。
像这样:
self.vec=[]
for i in range(25) :
self.vec.append( Button(self.gframe) )
self.vec[i]["width"] = 3
self.vec[i]["command"] = lambda : self.placeChess(i)
我希望
button0
的命令为lambda : self.placeChess(0)
。
button1
的命令为lambda : self.placeChess(1)
button2
的命令为lambda : self.placeChess(2)
......等等
但我上面写的代码并没有这样做。无论我点击什么按钮,placeChess
的参数始终为25,而25是i
的最终值。似乎python将i
的引用传递给placeChess
,而不是每次创建lambda
时的常量值。
如何解决这个问题?