class Base(object):
def __init__(self):
print "Base created"
class ChildA(Base):
def __init__(self):
Base.__init__(self)
class ChildB(Base):
def __init__(self):
super(ChildB, self).__init__()
¿Qué diferencia hay entre la construcción de A y de B?. Pues ninguna, lo que ocurre es que super (versión B) nos permite mayor flexibilidad para gestionar la jerarquía ya que no tenemos que referirnos a una clase en particular.Usar super es también la única forma de hacer herencia múltiple aunque yo no la uso por ser fuente de errores.
En python 3, la sintaxis se simplifica de super(ChildB,self).__init__() a super().__init().
Fuentes:
Understanding Python super() and init methods
http://stackoverflow.com/questions/576169/understanding-python-super-and-init-methods
How to use 'super' in python
http://stackoverflow.com/questions/222877/how-to-use-super-in-python
1 comentario:
Hola,
Es cierto que el uso de "super" encapsula. Pero en la propia creación de childB se le pasa un "base" como argumento...no?
Gracias
Publicar un comentario