如果我的班级有一个我已经映射到其他东西的变量。几乎就像该类将对象包装在软件包中一样,例如 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