Sagen wir, ich unten Hierarchie (ziemlich vereinfacht)Wie Zugang zu Vorfahren Attribut bekommen übersprungen für Eltern
class Ancestor:
def __init__(self, *args, **kwargs):
super(Ancestor, self).__init__(*args, **kwargs)
self.a = 1
Ich will nicht seine Child
Zugriff auf a
Attribut haben
class Child(Ancestor):
def __init__(self, *args, **kwargs):
super(Ancestor, self).__init__(*args, **kwargs)
self.b = 2
Aber ich will seinen Descendant
Zugriff haben beide a
und b
class Descendant(Child):
def __init__(self, *args, **kwargs):
super(Descendant, self).__init__(*args, **kwargs)
Gibt es eine Möglichkeit, gewünschtes Verhalten zu erhalten und mehrfache Vererbung zu vermeiden, z. class Descendant(Ancestor, Child)
?
Wenn Sie den Zugriff wollen nicht 'a' Attribut dann erben nicht von' Ancestor'. Erstellen Sie eine weitere Klasse –
@vishes_shell, Es ist keine Option. Ich muss die aktuelle Struktur behalten –