2024-09-30 02:35:35 发布
网友
我正在使用tkinter,并试图在按下按钮时为全局变量赋值。代码如下: popup.add_command(label="Allow Moving Item", command=lambda: allowMoving=True) 我得到了无效的语法。你能告诉我怎么解决这个问题吗? 非常感谢!在
popup.add_command(label="Allow Moving Item", command=lambda: allowMoving=True)
不要使用lambda。一个好的经验法则是永远不要使用lambda,除非没有其他方法。在回调中使用lambda应该是例外,而不是规则。在
lambda
def allow_moving(): global allowMoving allowMoving = True popup.add_command(label="Allow Moving Item", command=allow_moving)
仅供娱乐之用。在
popup.add_command(label="Allow Moving Item", command=lambda: globals().update(allowMoving=True))
(尽管globals()与locals()没有相同的“不要修改返回值”警告,但我仍然不确定这是否能保证有效。)
globals()
locals()
更好的答案是用def语句定义回调。在
def
不要使用
lambda
。一个好的经验法则是永远不要使用lambda
,除非没有其他方法。在回调中使用lambda
应该是例外,而不是规则。在仅供娱乐之用。在
(尽管
globals()
与locals()
没有相同的“不要修改返回值”警告,但我仍然不确定这是否能保证有效。)更好的答案是用
^{pr2}$def
语句定义回调。在相关问题 更多 >
编程相关推荐