給定任意對象:幫助與Python繼承
class Val(object):
def __init__(self):
this_val = 123
我想創建具有是屬性的抽象基類Val()
:
class A(object):
foo = Val()
我希望,當我的孩子繼承該類,他們將獲得Val()
的副本。例如:
class B(A):
pass
class C(A):
pass
我希望以下行爲:
>>> b = B()
>>> c = C()
>>> c.foo.this_val = 456
>>> b.foo.this_val
123
而是我得到:
>>> b.this_val
456
我明白,我可能只是self.foo = Val()
到INIT實現該行爲,但我有一個要求,即foo仍然是一個屬性(它是在Django的模型管理器)。任何人都可以爲此提出解決方法嗎?
編輯:我真正需要的是能夠訪問該值作爲一個類的屬性,所以我期望的行爲是:
>>> C.foo.this_val = 456
>>> B.foo.this_val
123
我需要引用它的屬性,雖然。我想做'C.foo.this_val'和'B.foo.this_val'並得到不同的結果。對不起,如果不明確。我沒有實例:( – Bacon 2011-05-23 06:43:40
然後在個別類定義中覆蓋它呢? – Amber 2011-05-23 06:47:47
我真的很希望不要這樣做。必須有一些模糊的python私有方法,我可以重寫以達到這個目的? – Bacon 2011-05-23 06:50:15