В чем разница между django classonlymethod и python classmethod? - PullRequest
22 голосов
/ 15 ноября 2011

Почему Джанго нужно представить декоратор classonlymethod? Почему он не может повторно использовать Python classmethod?

1 Ответ

42 голосов
/ 15 ноября 2011

Лучшим объяснением может быть сам исходный код:

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 может быть вызван только для класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...