[Python-es] herencia multiple comportamiento con diferentes argumentos

AGTUGO agtugo en gmail.com
Lun Ago 13 02:02:14 EDT 2018


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20180813/4c67aad7/attachment.html>


Más información sobre la lista de distribución Python-es