- python类的方法都需要默认传入第一个参数self,但是self 的名字其实是可以任意命名的,比如这里我把self写成cls_obj,输出的任然是2.
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.