python - 使用 lambda 在回调中设置属性

标签 python lambda callback

尝试弄清楚如何使用 lambda 函数设置对象属性。

我遇到了一个情况,我需要使用 UI 回调设置属性,这需要一个函数对象。

正在尝试类似的方法,但它不起作用,并且给了我一个语法错误。

pm.button(command=lambda *args: uvOpts.grid = True)

最佳答案

这解决了语法错误(pm.button 中不能有第二个“=”),并且如果 uvOpts 位于scope

pm.button(command=lambda *args: setattr(uvOpts, 'grid', True))

设置我正在使用的对象的属性 setattr ,以避免在 lambda 函数定义中使用 = 符号。

<小时/>

我想补充一点,如果您需要使 uvOpts 在 lambda 范围内可见,您可能最终需要将其设置为全局,至少在模块级别(例如阅读 Using global variables in a function other than the one that created them 中的答案)。

关于python - 使用 lambda 在回调中设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20826601/

相关文章:

c - 什么时候使用回调函数?

python - Django 中的 "Master page"管理

python - 如何编写基于类的 Django 验证器?

python 类方法在调用时会提示

Python Minidom XML 解析点四边形/嵌套子元素

C++ 函数斜杠运算符 lambda 表达式

python - 对 lambda 表达式的包装

python - 高效计算字符串中的词频

java - Future cancel 触发的 ListenableFuture 回调

jquery - 即使图像不存在,也会触发图像加载回调