Me pregunto cuándo usar qué sabor de Python 3 super().Uso de Python 3 super()
Help on class super in module builtins:
class super(object)
| super() -> same as super(__class__, <first argument>)
| super(type) -> unbound super object
| super(type, obj) -> bound super object; requires isinstance(obj, type)
| super(type, type2) -> bound super object; requires issubclass(type2, type)
Hasta ahora he utilizado super()
sólo sin argumentos y funcionó como se esperaba (por un desarrollador de Java).
Preguntas:
- ¿Qué significa "obligado" en este contexto?
- ¿Cuál es la diferencia entre superobjeto enlazado y no unido?
- Cuándo utilizar
super(type, obj)
y cuándosuper(type, type2)
? - ¿Sería mejor nombrar a la super clase como en
Mother.__init__(...)
?
La pregunta es específicamente sobre python3, pero la serie | Blog de Simionato están a punto python2, y mencionan que * La ventaja es que se evita repetir el nombre de la clase en la sintaxis de llamada, ya que ese nombre está oculto en el mecanismo de manipulación de nombres privados. *. Esto ya no es cierto en Python3, por lo que al menos esa ventaja es anticuada. – gerrit