2013-02-09 51 views
-1

如果我的类有一个变量,我已映射到其他东西。就好像这个类正在将一个对象包装在一个软件包中一样,比如一个3d节点或其他东西。如何在更改类变量时运行方法?

当类变量发生变化时,简单属性的变化,那么我会希望运行设置3D节点上该属性的功能。像myClass.translateX一样,改变这个attr然后会运行一个函数来更新3d节点的translateX。

希望是有道理的,我的谷歌富已经失败,所以也许我没有使用正确的术语。

+3

没有任何代码,你的问题让人很没有意义。你可以包括你想要做的样本吗? – 2013-02-09 13:59:24

回答

1

我想你想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 
+0

看起来像一个合理的猜测,尽管允许将节点传递给'__init __()'可能会更好。 – martineau 2013-02-09 20:00:51