django classonlymethod 和 python classmethod的区别

--classmethod可以被一个实例调用,classonlyethod只能被类调用

class Kls(object):
    no_inst = 0
    def __init__(self):
        Kls.no_inst = Kls.no_inst + 1
    @classmethod
    def get_no_of_instance(cls_obj):
        return cls_obj.no_inst
ik1 = Kls()
ik2 = Kls()
print ik1.get_no_of_instance()
print Kls.get_no_of_instance()

输出:
2
2
这样的好处是: 不管这个方式是从实例调用还是从类调用,它都用第一个参数把类传递过来.

参考:https://blog.csdn.net/waiwaiLILI/article/details/80937815

猜你喜欢

转载自www.cnblogs.com/wqzn/p/10079382.html