我正在为循环内的按钮行为对象创建on_press
回调,并且由于某种原因,部分的所有参数保持与最后创建的部分参数相同。
缩短创作的例子:
(按钮是实现按钮行为的类)
for button in list:
button.on_press=partial(my_func, button, button.arg1, button.arg2)
问题是参数arg1
和arg2
保持与循环的最后一次迭代相同而不是更新。所以当我按下按钮(并不重要)时,会调用回叫,就像按下最后一个按钮一样。
为什么会发生这种情况/我该如何解决这个问题?