使用lambda在回调中设置属性

时间:2013-12-29 15:15:47

标签: python lambda callback

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

我得到一个案例,我需要使用UI callBack设置属性,这需要一个函数对象。

正在尝试类似这样的东西但它没有用,并且给了我一个语法错误。

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

1 个答案:

答案 0 :(得分:3)

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

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

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


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