2013-02-09 53 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