如何传递self.selected(i)? - Python
从上面的内容中可以看出,问题的原因是在创建按钮的时候,使用了闭包的方式来传递参数。在闭包中,命令(command)被设置为self.selected(i)
,然而,当命令执行时,它捕获了的值,而不是按钮被创建时的值。因此,每次执行命令时,的值都是100,而不是预期的按钮索引。
为了解决这个问题,可以在创建按钮时将赋值给另一个局部变量,然后在闭包中使用这个局部变量。这样,当命令执行时,它捕获的是按钮被创建时的索引值,而不是100。
下面是解决方法的代码示例:
command=lambda i=i: self.selected(i)
通过将赋值给i
的新的局部变量,我们确保闭包中捕获的是按钮被创建时的索引值,而不是100。这样,self.selected(i)
将会使用正确的索引值。
这样,我们就解决了问题,并确保了闭包中使用正确的索引值来调用self.selected
函数。