我正在为 Blender 的一个项目编写 Python 脚本,但我对该语言还很陌生。我感到困惑的是静态变量的使用。这是我目前正在处理的代码片段:
class panelToggle(bpy.types.Operator):
active = False
def invoke(self, context, event):
self.active = not self.active
return{'FINISHED'}
class OBJECT_OT_openConstraintPanel(panelToggle):
bl_label = "openConstraintPanel"
bl_idname = "openConstraintPanel"
这个想法是第二个类应该继承active变量和invoke方法从第一个开始,以便调用 OBJECT_OT_openConstraintPanel.invoke() 更改 OBJECT_OT_openConstraintPanel.active。使用self正如我上面所做的那样,但是,使用也不起作用面板切换反而。知道我该怎么做吗?
use type(self)
用于访问类属性
>>> class A(object):
var = 2
def write(self):
print(type(self).var)
>>> class B(A):
pass
>>> B().write()
2
>>> B.var = 3
>>> B().write()
3
>>> A().write()
2
UPDATE
for a classmethod
活动更容易、最自然
class A(object):
var = 2
@classmethod
def write(cls):
print(cls.var)
and a staticmethod
不应依赖于实例类型,因此这种形式的调度在这里是可能的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)