Bueno, debo aceptar que tienes razón con lo del uso de self.__class__, pero a excepción de eso, creo que nadie pregunto en que orden se ejecutaban, ni nada de la herencia múltiple, la pregunta fue, para que sirve, y en un principio sirve.. para ejecutar un método padre visto a groso modo, tal y como fue hecha la pregunta.
Un saludo. Y gracias por el apunte. El día 1 de febrero de 2011 19:24, Chema Cortes <pych...@gmail.com> escribió: > El día 1 de febrero de 2011 14:31, Andrey Antoukh <and...@gmail.com> escribió: >> No se a que te refieres con que no es facil de entender, pero lo que >> acabas de explicar, lo explica claramente el ejemplo..., solo que tu >> lo has hecho con palabras. >> >> Una cosa es que quiera profundizar, y otra cosa es que quiera saber >> para que sirve en su esencia. > > En una cosa tienes razón: es mil veces preferible ver código que > expresarlo sólo con palabras. Pero tu código no explica correctamente > para qué sirve de verdad super(), por lo siguiente: > > 1) falta código que ilustre su empleo en herencia múltiple, algo que > da sentido al uso de super() frente al sistema anterior de acceder > directamente a los métodos de la superclase > > 2) usar super(self.__class__, self) es inoperante en herencia múltiple > e ilustra que realmente no has entendido bien el concepto > > > No tengo tiempo ahora para poner un ejemplo completo, así que lo > propongo como ejercicio: > > Supongamos que tenemos 4 clases: > > class A(object): > def __init__(self):pass > > class B(A): > def __init__(self): > super(B, self).__init__() > > class C(A): > def __init__(self): > super(C,self).__init__() > > class D(B,C): > def __init__(self): > super(D,self).__init__() > > > d=D() > > > Preguntas: > > 1) ¿en qué orden se ejecutarán los métodos de inicialización? (pista: > D.__mro__) > 2) ¿qué pasa cuando en la clase B cambiamos super(B,self) por > super(self.__class__,self)? > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- http://twitter.com/andsux http://www.niwi.be **** http://www.freebsd.org/ http://www.postgresql.org/ http://www.python.org/ http://www.djangoproject.com/ "Linux is for people who hate Windows, BSD is for people who love UNIX" "Social Engineer -> Because there is no patch for human stupidity" _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/