讓我們假設這個例子:兩個兄弟姐妹類,其中一個加載另一個類作爲一個新屬性,然後我希望從兄弟內的主類使用該屬性。Python反向自省
a = 2
class AN(object):
def __init__(self,a):
self.aplus = a + 2
self.BECls = BE(a)
class BE(object):
def __init__(self,a):
print a
def get_aplus(self):
????
c = AN(a)
,我想這樣做:
c.BECls.get_aplus()
,這將返回類似self.self.aplus(比喻),這將是4
恢復:讓Aplus的屬性從BE內部的AN中,沒有聲明爲參數,而是做一個「反向內省」,如果可能的話,考慮到'a'變量必須已經通過AN加載。
對不起,如果我沒有讓自己清楚,但我試圖簡化我的真實代碼發生了什麼。
我想這個問題可能是我在類上使用的技術。但不知道什麼或如何使它更好。
感謝
爲什麼你不能只給了'BE'對象到其相應的'AN'參考? – 2012-04-27 06:10:29
其實這是我喜歡做的事情,但怎麼?歡呼 – AndreLobato 2012-04-29 00:46:44
我不能給BE一個對象(an_obj = AN(self.a)),因爲它會陷入一個無限循環,試圖一遍又一遍地加載自身,上升的RunTimeError。 – AndreLobato 2012-04-29 02:28:37