我正在使用 Tkinter 在 Python 中创建一个应用程序,其中将有一个按钮网格,并且我正在使用嵌套的 for 循环创建按钮。单击时,每个按钮都有一个回调函数,该函数还传递两个包含自身坐标的参数。我试图通过为每个按钮分配自己的回调 lambda 来设置它,如下所示:
self.board[row][col].config(command=lambda: switch(row, col))
但是,这不起作用,因为不是每个函数的回调都包含其坐标,例如
command=lambda: switch(2, 4)
它只包含变量 row 和 col,这意味着每个按钮的值最终为 4,因为循环以 4 结束。
总而言之,我正在寻找一种将参数硬编码到函数调用中的方法。显然我可以通过不使用循环而只明确定义每个按钮来解决这个问题,但是还有其他方法可以做到这一点吗?