美文网首页
Python的类变量和实例变量

Python的类变量和实例变量

作者: 无敌的肉包 | 来源:发表于2018-03-30 17:48 被阅读0次

    类变量 在所有类的实例之前共享的值
    实例变量 每个实例单独拥有的变量

    #Exmple 1 
    class Test(object):  
        num_of_instance = 0  
        def __init__(self, name):  
            self.name = name  
            Test.num_of_instance += 1  
      
    if __name__ == '__main__':  
        print Test.num_of_instance   # 0
        t1 = Test('jack')  
        print Test.num_of_instance   # 1
        t2 = Test('lucy')  
        print t1.name , t1.num_of_instance  # jack 2
        print t2.name , t2.num_of_instance  # lucy 2
    
    #Example 2
    class Person:
        name="aaa"
    
    p1=Person()
    p2=Person()
    p1.name="bbb"
    print p1.name  # bbb
    print p2.name  # aaa
    print Person.name  # aaa
    

    这里p1.name="bbb"是实例调用了类变量,这其实和上面第一个问题一样,就是函数传参的问题,p1.name一开始是指向的类变量name="aaa",但是在实例的作用域里把类变量的引用改变了,就变成了一个实例变量,self.name不再引用Person的类变量name了.

    相关文章

      网友评论

          本文标题:Python的类变量和实例变量

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