如何在更改类变量时运行方法?

时间:2013-02-09 13:58:52

标签: python python-2.7

如果我的类有一个我已映射到其他内容的变量。几乎就像该类将对象包装在软件包中一样,如3d节点或其他东西。

当类中的变量发生更改时,那个简单的属性更改我想要运行一个在3d节点上设置该属性的函数。与myClass.translateX一样,更改此attr将运行一个函数来更新3d节点的translateX。

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

1 个答案:

答案 0 :(得分: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