Mi chiedo quando utilizzare il sapore di Python 3 super().Utilizzo di 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)
Fino ad ora ho usato super()
solo senza argomenti e ha funzionato come previsto (da uno sviluppatore Java).
Domande:
- Che cosa significa "legato" significa in questo contesto?
- Qual è la differenza tra oggetto super associato e non associato?
- Quando utilizzare
super(type, obj)
e quandosuper(type, type2)
? - Sarebbe meglio nominare la super classe come in
Mother.__init__(...)
?
La domanda è specificamente python3, ma post del blog serie di Simionato sono circa python2, e ricordare che * Il vantaggio è che si evita di ripetere il nome del classe nella sintassi chiamante, dal momento che quel nome è nascosto nel meccanismo di mangling dei nomi privati. *. Questo non è più vero in Python3, quindi almeno un vantaggio è datato. – gerrit