• Python类变量和实例变量


    class TestClass(object):
        val1 = 100  #类变量


        def __init__(self):
            self.val2 = 200  #实例变量

        def fcn(self, val=400):
            val3 = 300  #局部变量
            self.val4 = val
            self.val5 = 500


    inst1 = TestClass()

    inst2 = TestClass()

     

    print TestClass.val1 # 100

    print inst1.val1   # 100

     

    inst1.val1 = 1000 

    print inst1.val1   # 1000

    print TestClass.val1 # 100

     

    TestClass.val1 =2000

    print inst1.val1   # 1000

    print TestClass.val1 # 2000

     

    print inst2.val1   # 2000  

     

    inst3 = TestClass()

    print inst3.val1   # 2000

     

    类本身拥有自己的类变量(保存在内存),当一个TestClass类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;

    通过对象来修改类变量,并不会影响其他对象的类变量的值,更不会影响类本身所拥有的那个类变量的值;

    只有类自己才能改变类本身拥有的类变量的值

    在类定义之后,可以通过类名动态添加类数据属性,新增的类属性也被类和所有实例共有;

    实例数据属性只能通过实例访问;

    在实例生成后,还可以动态添加实例数据属性,但是这些实例数据属性只属于该实例;

     

  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/EmptyRabbit/p/7679655.html
Copyright © 2020-2023  润新知