假设我有低于等级(非常简化)
class Ancestor:
def __init__(self, *args, **kwargs):
super(Ancestor, self).__init__(*args, **kwargs)
self.a = 1
我不希望其Child
有权访问a
属性
class Child(Ancestor):
def __init__(self, *args, **kwargs):
super(Ancestor, self).__init__(*args, **kwargs)
self.b = 2
但我希望其Descendant
能够同时访问a
和b
class Descendant(Child):
def __init__(self, *args, **kwargs):
super(Descendant, self).__init__(*args, **kwargs)
有没有办法获得所需的行为并避免多重继承,例如class Descendant(Ancestor, Child)
?
答案 0 :(得分:1)
这似乎是多重继承的情况。孩子不应该继承祖先,但是后代可以从两者继承:
class Child:
...
class Descendant(Ancestor, Child):
...