python Mehrfachvererbung übergeben von Argumenten in Konstruktoren mit super

Betrachten Sie den folgenden Ausschnitt aus python-code

class A(object):
    def __init__(self, a):
        self.a = a

class B(A):
    def __init__(self, a, b):
        super(B, self).__init__(a)
        self.b = b

 class C(A):
    def __init__(self, a, c):
        super(C, self).__init__(a)
        self.c = c

class D(B, C):
    def __init__(self, a, b, c, d):
        #super(D,self).__init__(a, b, c) ???
        self.d = d

Ich Frage mich, wie kann ich pass a, b und c zu entsprechenden Basis von Klassen-Konstruktoren.

Dank,

Möglich, Duplikat der Wie funktioniert Python ' s super() Arbeit mit Mehrfachvererbung?
Sie können rufen Sie __init__ zweimal für B und C.
Lesen Sie auch über die Diamant-problem
Python ' s super() als super!!!
Ich denke, das ist nicht ein Duplikat des anderen berühmten Frage, denn diese Frage ist, die sich insbesondere mit wie machen die super Arbeit nennt, im Fall von Diamant-Vererbung, während die andere ist eine Frage, über wie super klappt im Allgemeinen.

InformationsquelleAutor Ling | 2016-01-19

Schreibe einen Kommentar