2024-09-30 01:31:16 发布
网友
试图找出如何使用lambda函数设置对象属性。在
我有一个例子,我需要用一个UI回调来设置属性,这需要一个函数对象。在
我在尝试类似的东西,但它不起作用,并给我一个语法错误。在
pm.button(command=lambda *args: uvOpts.grid = True)
这解决了语法错误(在pm.button中不能有第二个“=”,如果uvOpts在scope中,则可以使用。在
pm.button
=
uvOpts
pm.button(command=lambda *args: setattr(uvOpts, 'grid', True))
为了设置对象的属性,我使用setattr,以避免在lambda函数定义中使用=符号。在
lambda
我想补充一点,如果您需要在lambda范围内使uvOpts可见,那么您可能会最终需要使其至少在模块级上可见(例如,阅读Using global variables in a function other than the one that created them中的答案)。在
这解决了语法错误(在
pm.button
中不能有第二个“=
”,如果uvOpts
在scope中,则可以使用。在为了设置对象的属性,我使用setattr,以避免在
lambda
函数定义中使用=
符号。在我想补充一点,如果您需要在lambda范围内使
uvOpts
可见,那么您可能会最终需要使其至少在模块级上可见(例如,阅读Using global variables in a function other than the one that created them中的答案)。在相关问题 更多 >
编程相关推荐