如果我的班级有一个我已经映射到其他东西的变量。几乎就像该类将对象包装在软件包中一样,例如 3d 节点或其他东西。
当类中的变量发生更改时,那个简单的属性更改然后我想运行一个在 3d 节点上设置该属性的函数。与 myClass.translateX 一样,更改此属性将运行一个函数来更新 3d 节点的 translateX。
希望这是有道理的,我的 google foo 失败了,所以也许我没有使用正确的术语。
如果我的班级有一个我已经映射到其他东西的变量。几乎就像该类将对象包装在软件包中一样,例如 3d 节点或其他东西。
当类中的变量发生更改时,那个简单的属性更改然后我想运行一个在 3d 节点上设置该属性的函数。与 myClass.translateX 一样,更改此属性将运行一个函数来更新 3d 节点的 translateX。
希望这是有道理的,我的 google foo 失败了,所以也许我没有使用正确的术语。
我想你想要一个property. 它允许您将类实例的属性访问映射到函数调用,您可以使用它对 3d 对象执行必要的操作:
class My3dNodeWrapper(object):
def __init__(self):
self.node = Some3dNodeThing()
@property
def translateX(self):
return self.node.getXTranslation() # or whatever
@translateX.setter
def translateX(self, value):
self.node.setXTranslation(value) # or whatever