django classonlymethod 和 python classmethod的區別

Bound_w發表於2018-12-06

--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

相關文章