使用 Lambda 在 For 循环中进行 Tkinter 按钮命令分配
在 Tkinter 中,一个常见的任务是使用 for 创建一系列按钮环形。但是,当使用 lambda 函数向这些按钮分配命令时,会出现一个陷阱。
在 lambda 函数中使用也在 for 循环迭代器中使用的变量名称时,会出现此问题。随着循环的进行,此变量会不断重新分配,导致所有按钮对分配的变量使用相同的值。
要解决此问题,请通过引入默认关键字参数来修改 lambda 表达式。每次循环都会将变量的当前值绑定到 lambda 的关键字参数:
user_button = Tkinter.Button(self.root, text=name, command=lambda name=name: self.a(name))
通过将变量名称分配给 name 关键字参数,当前值在每次迭代中都绑定到该参数。这确保每个按钮在单击时保留其唯一的参数。
以上是在循环中分配 Tkinter 按钮命令时如何避免变量作用域问题?的详细内容。更多信息请关注PHP中文网其他相关文章!