python staticmethod

2018-02-04  本文已影响0人  打杂算法工程师
class Kls(object):
    no_inst = 0
    def __init__(self):
        Kls.no_inst = Kls.no_inst + 1
    #@staticmethod
    def get_no_of_instances(cls_obj):
        return cls_obj.no_inst      
ik1 = Kls()
ik2 = Kls()

当使用静态方法的时候,在函数的声明中不会自动传入类作为第一个参数,如下:

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

2

kls可以换为ik1, ik2, 输出的结果都是2.

上一篇下一篇

猜你喜欢

热点阅读