Sto cercando di capire quando e come utilizzare super() in Python correttamente (o 2.7.x o 3.x)Argomenti Python super(): perché non super (obj)?
sul >>> help(super)
l'interprete mi dice come chiamare è:
class super(object)
| 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)
Capisco che in Python3.x sia ora possibile utilizzare jusute super() all'interno di una definizione di classe, ma non capisco perché super(obj)
non sia possibile. Oppure super(self)
all'interno di una definizione di classe.
So che ci deve essere una ragione per questo, ma non riesco a trovarlo. Per me quelle righe equivalgono a super(obj.__class__, obj)
o super(self.__class__, self)
e quelle funzionerebbero correttamente?
Penso che scrivere semplicemente super(obj)
sia una bella scorciatoia anche in Python 3.x.
Stavo per dire che causerebbe ambiguità quando chiami 'super' su un metaclasse, ma poi mi sono reso conto che quell'ambiguità esiste anche con il modulo a 2 argomenti. Ora non sono sicuro. – user2357112