18
¿Por qué es necesario que Django presente el decorador classonlymethod
? ¿Por qué no puede reutilizar python classmethod
?¿Cuál es la diferencia entre django classonlymethod y python classmethod?
¿Por qué es necesario que Django presente el decorador classonlymethod
? ¿Por qué no puede reutilizar python classmethod
?¿Cuál es la diferencia entre django classonlymethod y python classmethod?
La mejor explicación puede ser el propio código fuente:
class classonlymethod(classmethod):
def __get__(self, instance, owner):
if instance is not None:
raise AttributeError("This method is available only on the view class.")
return super(classonlymethod, self).__get__(instance, owner)
La diferencia es que un classmethod
pueden ser llamados en una instancia, teniendo el mismo efecto que llamar en la clase, pero el classonlymethod
sólo puede ser llamado en la clase.
Entonces, ¿la única diferencia entre 'classonlymethod' y' staticmethod' está en su firma? – arijeet
@ redskins80 No, la diferencia es que * no * puede usar un 'método classonly' en una instancia de clase. – dotslash