我有下面的類結構工程:Python類的屬性可以相加嗎?
A.elems == [1, 2, 3]
B.elems == [1, 2, 3]
C.elems == [20, 100]
D.elems == [4, 5]
我想:
class A(object):
elems = [1, 2, 3]
class B(A):
pass
class C(B):
elems = [20, 100]
class D(B):
elems = [4, 5]
目前,Python的默認繼承行爲是覆蓋elems
屬性在以後的每個屬性聲明,如能夠訪問這些值的列表添加劑。換句話說,我希望能夠檢索以下列表:
A.collated() == [1, 2, 3]
B.collated() == [1, 2, 3]
C.collated() == [1, 2, 3, 20, 100]
D.collated() == [1, 2, 3, 4, 5]
我不知道該怎麼做。任何幫助將不勝感激。
由於提前,
- B
你確定你真的希望這些是類成員(並且'collated'是'@ classmethod')嗎?因爲這是一種奇怪的設計 - 這種類型的東西在Javascript中完全適用,但在Python中很少。 – abarnert