美文网首页
python staticmethod

python staticmethod

作者: 打杂算法工程师 | 来源:发表于2018-02-04 14:01 被阅读0次
    • 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.

    相关文章

      网友评论

          本文标题:python staticmethod

          本文链接:https://www.haomeiwen.com/subject/tkymzxtx.html