Al utilizar Python super()
hacer método de encadenamiento, hay que especificar explícitamente su propia clase, por ejemplo:¿Por qué tengo que especificar mi propia clase cuando uso super(), y hay una forma de evitarlo?
class MyDecorator(Decorator):
def decorate(self):
super(MyDecorator, self).decorate()
tengo que especificar el nombre de mi clase MyDecorator
como argumento para super()
. Esto no es SECO. Cuando renombre mi clase ahora tendré que cambiarle el nombre dos veces. ¿Por qué se implementa esto de esta manera? ¿Y hay una manera de evitar el tener que escribir el nombre de la clase dos veces (o más)?
Enlace a la versión actual del PEP: http://www.python.org/dev/peps/pep-3135/ – sth
'super()' sin argumentos * no * funciona en Python 2.6.1 – jfs
PEP 367 parece haber sido "reemplazado". No veo evidencia de que esto se haya agregado a 2.7. Creo que es una función solo 3.x. – Vultaire