python - lambda 给全局变量赋值?

标签 python lambda assign

我正在使用 tkinter 并尝试在按下按钮时为全局变量分配一个值。这是代码:

popup.add_command(label="Allow Moving Item", command=lambda: allowMoving=True)

我收到无效语法。你能告诉我如何解决这个问题吗?

最佳答案

仅供娱乐。

popup.add_command(label="Allow Moving Item",
                  command=lambda: globals().update(allowMoving=True))

(虽然 globals() 没有记录与 locals() 相同的“不要修改返回值”警告,但我仍然不确定这是保证工作。)

<小时/>

更好的答案是使用 def 语句来定义回调。

def set_allow_moving():
    global allow_moving    # Don't use camel case for variable names in Python
    allow_moving = True

popup.add_command(label="Allow Moving Item", command=set_allow_moving)

关于python - lambda 给全局变量赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42211594/

相关文章:

Python `dict` 由元组 : Getting a slice of the pie 索引

Python range( ) 没有给我一个列表

c++ - 为什么带有指向成员函数指针的可变 lambda?

rust - 如何在 Rust 中处理/规避 "Cannot assign to ... which is behind a & reference"?

Visual Studio 2010 上的 C++ : Cannot assign string to a string (mixed types are not supported)

python - 如何 MatPlotLib 绘制两个 DataFrame?

python - 查找变量位置的函数?

javascript - Node JS request.post 在 AWS Lambda 中未触发

python - Python 相对于 Ruby 的限制 : lambda's

将 double 添加到 long long 时出现 C++ 精度错误