Лучшим объяснением может быть сам исходный код:
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)
Разница в том, что classmethod
может быть вызван для экземпляра, с тем же эффектом, что и вызов его для класса, но classonlymethod
может быть вызван только для класса.