2

源代码如下:

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)

虽然我可以看到 classonlymethod 只能在类上调用,而不能在实例上调用,这与 python 的 classmethod 不同,但为什么我们需要这样的“限制”?

www 上关于 classonlymethod 的内容不多,任何外行的例子都一如既往地受到赞赏。

4

1 回答 1

5

它在基于类的视图内部使用,as_view以向尝试在实例上调用它的人提供描述性错误消息。

我不确定是谁首先决定它是强制性的。

于 2013-02-07T18:47:33.860 回答