我有下面的类结构工程: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