¿Cómo pasa Python los parámetros __init__ con herencia múltiple?
Tengo este código, que muestra un patrón de diamante clásico:
class A:
def __init__( self, x ):
print( "A:" + x )
class B( A ):
def __init__( self, x ):
print( "B:" + x )
super().__init__( "b" )
class C( A ):
def __init__( self, x ):
print( "C:" + x )
super().__init__( "c" )
class D( B, C ):
def __init__( self ):
super().__init__( "d" )
d = D()
La salida es:
B:d
C:b
A:c
B:d
tiene sentido, ya queD
deriva deB
.LosA:c
Casi me sale, aunque igualmente pude verA:b
.Sin embargo, elC:b
bit no tiene sentido:C
no deriva deB
.¿Podría alguien explicarme?
Preguntas comoest lamentablemente no mencione los parámetros.