[Python-es] Sobre super()

Chema Cortes pych3m4 en gmail.com
Mar Feb 1 13:53:18 CET 2011


El día 1 de febrero de 2011 12:32, Gustavo Cabral <gmcabral en gmail.com> escribió:
> Estimados desarrolladores:
> Alguien me puede alcanzar una buena página sobre documentación de
> Python, pero en castellano?. Necesito entender perfectamente sobre la
> función super() y solo encontré
> http://docs.python.org/library/functions.html, pero está en ingles y
> me cuesta (o dudo) darle un sentido correcto a su definición.

No es fácil de entender. Antes hay que comprender el algoritmo MRO que
usa python para resolver el orden de ejecución de métodos heredados,
que es la esencia de la herencia múltiple.

Tan sólo cónozco esta documentación en inglés que lo explique con detalle:

<http://cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html>


Sin entrar en cómo es el MRO, digamos que toda clase posee una lista
ordenada de clases (__mro__), comenzando por sí misma y acabando en la
superclase 'object', que es usada cuando se buscan métodos heredados.
La función super() obtiene a partir de una clase y una instancia la
clase siguiente de esta lista. Así de simple. La cuestión es cómo algo
tan simple hace que funcione la herencia múltiple.


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