herencia multiple python
Cómo evitar la recursión infinita con super()? (1)
Cuando la instanciación de C llama a B.__init__ , self.__class__ seguirá siendo C, por lo que la llamada a super () lo devuelve a B.
Cuando llame a super (), use los nombres de clase directamente. Entonces en B, llame a super(B, self) , en vez de a super(self.__class__, self) (y para una buena medida, use super(C, self) en C). Desde Python 3, puedes usar super () sin argumentos para lograr lo mismo
Tengo un código como este:
class A(object):
def __init__(self):
self.a = 1
class B(A):
def __init__(self):
self.b = 2
super(self.__class__, self).__init__()
class C(B):
def __init__(self):
self.c = 3
super(self.__class__, self).__init__()
La creación de instancias B funciona como se esperaba pero la instanciación de C recursó infinitamente y causa un desbordamiento de la pila. ¿Como puedo resolver esto?