python class variables (attributes) and instance variables (attributes

DAY 4. class variables (attributes) and instance variables (attributes)

  • Class variables: between instances of all classes can share variables, class variables to retain only one copy of all the objects in the room
    • Defined in the class body
    • All instances of object classes can access class variables
    • Class variables can only be modified by the class, instance object only read access
    • Use 对象名.类变量名 = new valueis not in use to modify the object class attribute, but to add a new property objects
class Demo:
    # 类变量
    classVar = 0
    def __init__(self):
        self.instanceVar = 1

if __name__ == '__main__':
    demo1 = Demo()
    demo2 = Demo()
    # 类的所有实例对象都可以访问类变量
    print(demo1.classVar)  # 0
    print(demo2.classVar)  # 0
    # 由类修改类变量
    Demo.classVar = 2
    print(demo1.classVar)  # 2
    print(demo2.classVar)  # 2
    # 注意,这样不是在修改类变量,而是给实例对象添加了一个属性
    demo1.classVar = 2
    print(demo1.classVar)  # 2
  • Instance variables: when instantiating objects, each will have its own instance variables, instance variables do not affect between
    • Defined in the constructor
    • Modify instance variables of the object instance, class instance variables did not modify the meaning of
    • Each instance of an object has instance variables
class Demo:
    # 类变量
    classVar = 0
    def __init__(self):
        # 实例变量
        self.instanceVar = 1

if __name__ == '__main__':
    print(demo1.instanceVar)  # 1
    print(demo2.instanceVar)  # 1
    # 各实例对象间的实例变量互相不影响
    demo1.instanceVar = 2
    print(demo1.instanceVar)  # 2
    print(demo2.instanceVar)  # 1
    # 用类修改实例变量没意义
    Demo.instanceVar = 2
    print(demo1.instanceVar)  # 2
    print(demo2.instanceVar)  # 1

4.1 summary

Variable (attribute) definition Read modify RAM
Class variables Defined in the class body className.classVarwithobjectName.classVar className.classVar = new value Just keep a copy
Instance variables Defined in the constructor objectName.instanceVar objectName.instanceVar = new value Each instance of an object holds, among the objects independently of each other

** Note: ** Use objectName.classVar = new valueis subject to add a new property

Reference article:

GitHub face questions about python

Python (classes and objects of the class variables and class attributes)

Part V illustrates Python []: Object-oriented - Class - Primary Basics

Published 62 original articles · won praise 33 · views 10000 +

Guess you like

Origin blog.csdn.net/zjbyough/article/details/95934888