2011-11-15 20 views

Respuesta

37

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.

+0

Entonces, ¿la única diferencia entre 'classonlymethod' y' staticmethod' está en su firma? – arijeet

+1

@ redskins80 No, la diferencia es que * no * puede usar un 'método classonly' en una instancia de clase. – dotslash

Cuestiones relacionadas