Estimada Lista de Python en espaƱol:

Repasando un poco los conceptos de herencia multiple ya que no la uso mucho
no recuerdo el porque del siguiente comportamiento, no entiendo porque paso
por el iniciador de Second. De antemano muchas gracias. La idea de llamar
los init de las clases Third y Second es pasarle argumentos diferentes y no
tener que modificar Second y Third con **kwargs como argumento.

class First(object):
    def __init__(self):
        print("first")

class Second(First):
    def __init__(self):
        super(Second,self).__init__()
        print("second")

class Third(First):
    def __init__(self):
        super(Third,self).__init__()
        print("third")

class Fourth(Third,Second):
    def __init__(self):
        Third.__init__(self)
#       Second.__init__(self)
        print("Forth")

print(First.__mro__)
print(Second.__mro__)
print(Third.__mro__)
print(Fourth.__mro__)

#//root = tk.Tk()
#//app = Window(root)
#//root.mainloop()

nieto = Fourth()

_________

Salida:

(<class '__main__.First'>, <class 'object'>)
(<class '__main__.Second'>, <class '__main__.First'>, <class 'object'>)
(<class '__main__.Third'>, <class '__main__.First'>, <class 'object'>)
(<class '__main__.Fourth'>, <class '__main__.Third'>, <class
'__main__.Second'>, <class '__main__.First'>, <class 'object'>)
first
second
third
Forth





-- 
Saludos.
AM
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a