如果我的類有一個變量,我已映射到其他東西。就好像這個類正在將一個對象包裝在一個軟件包中一樣,比如一個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