小编典典

django classonlymethod和python classmethod有什么区别?

python

为什么Django需要引入装饰器classonlymethod?为什么它不能重用python classmethod


阅读 256

收藏
2021-01-20

共1个答案

小编典典

最好的解释是源代码本身:

class classonlymethod(classmethod):
    def __get__(self, instance, cls=None):
        if instance is not None:
            raise AttributeError("This method is available only on the class, not on instances.")
        return super().__get__(instance, cls)

区别在于,classmethod可以在实例上调用a,与在类上调用具有相同的效果,但是classonlymethod只能在类上调用。

2021-01-20