如果我的类有一个变量,我已映射到其他东西。就好像这个类正在将一个对象包装在一个软件包中一样,比如一个3d节点或其他东西。如何在更改类变量时运行方法?
当类变量发生变化时,简单属性的变化,那么我会希望运行设置3D节点上该属性的功能。像myClass.translateX一样,改变这个attr然后会运行一个函数来更新3d节点的translateX。
希望是有道理的,我的谷歌富已经失败,所以也许我没有使用正确的术语。
如果我的类有一个变量,我已映射到其他东西。就好像这个类正在将一个对象包装在一个软件包中一样,比如一个3d节点或其他东西。如何在更改类变量时运行方法?
当类变量发生变化时,简单属性的变化,那么我会希望运行设置3D节点上该属性的功能。像myClass.translateX一样,改变这个attr然后会运行一个函数来更新3d节点的translateX。
希望是有道理的,我的谷歌富已经失败,所以也许我没有使用正确的术语。
我想你想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
看起来像一个合理的猜测,尽管允许将节点传递给'__init __()'可能会更好。 – martineau 2013-02-09 20:00:51
没有任何代码,你的问题让人很没有意义。你可以包括你想要做的样本吗? – 2013-02-09 13:59:24