zoukankan      html  css  js  c++  java
  • 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类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;

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

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

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

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

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

     

  • 相关阅读:
    jsp 认知(2)
    jsp 认知
    Java 匿名类
    Usage of readonly and const
    Javascript 原型继承(续)—从函数到构造器的角色转换
    JavaScript 原型继承开端
    JS 函数调用
    Javascript Basic Operation Extraction
    JS单词形式的运算符
    git问题收集
  • 原文地址:https://www.cnblogs.com/EmptyRabbit/p/7679655.html
Copyright © 2011-2022 走看看