Django的classonlymethod有什么用处?

3
以下是源代码:
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 一样在实例上调用,但为什么我们需要这样的“限制”呢?

关于 classonlymethod 的资料在互联网上并不多,如果有任何通俗易懂的例子,将不胜感激。


我想不出一个。 - Ignacio Vazquez-Abrams
@dm3514 不是很准确。我看到了那个,但那只是源代码,并没有回答我的问题。 - masterpiece
为什么这个问题被关闭为重复?问题是这种行为的目的是什么。链接的答案并没有回答这个问题。 - Matthew Moisen
1个回答

5

在基于类的视图中,它在as_view上内部使用,以提供一个描述性的错误消息,告诉那些试图在实例上调用它的人。

我不确定是谁首先决定它是必须的。


有其他答案展示了这个做什么 - 但这是我看到的唯一一个展示为什么的答案。这就是我想知道的。谢谢。 - deMangler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接