北京网站开发招聘,网站备案注册,做网页的软件有什么,全球访问量最大的网站DAY 4. 类变量#xff08;属性#xff09;和实例变量#xff08;属性#xff09;
类变量#xff1a;在所有类的实例之间都可以共享的变量#xff0c;类变量在所有对象间只保留一份 在类体中定义类的所有实例对象都可以访问类变量类变量只能由类修改#xff0c;实例对象…DAY 4. 类变量属性和实例变量属性
类变量在所有类的实例之间都可以共享的变量类变量在所有对象间只保留一份 在类体中定义类的所有实例对象都可以访问类变量类变量只能由类修改实例对象只有读权限使用对象名.类变量名 new value不是在使用对象修改类属性而是给对象添加了一个新属性
class Demo:# 类变量classVar 0def __init__(self):self.instanceVar 1if __name__ __main__:demo1 Demo()demo2 Demo()# 类的所有实例对象都可以访问类变量print(demo1.classVar) # 0print(demo2.classVar) # 0# 由类修改类变量Demo.classVar 2print(demo1.classVar) # 2print(demo2.classVar) # 2# 注意这样不是在修改类变量而是给实例对象添加了一个属性demo1.classVar 2print(demo1.classVar) # 2实例变量实例化对象时每个对象都会有自己的实例变量各实例变量之间不影响 在构造函数中定义实例变量由实例对象修改类修改实例变量没意义每个实例对象有一份实例变量
class Demo:# 类变量classVar 0def __init__(self):# 实例变量self.instanceVar 1if __name__ __main__:print(demo1.instanceVar) # 1print(demo2.instanceVar) # 1# 各实例对象间的实例变量互相不影响demo1.instanceVar 2print(demo1.instanceVar) # 2print(demo2.instanceVar) # 1# 用类修改实例变量没意义Demo.instanceVar 2print(demo1.instanceVar) # 2print(demo2.instanceVar) # 1
4.1 总结
变量属性定义读取修改内存类变量在类体中定义className.classVar和objectName.classVarclassName.classVar new value只保留一份实例变量在构造函数中定义objectName.instanceVarobjectName.instanceVar new value每个实例对象保存一份各对象间互不影响**注意**使用objectName.classVar new value是给对象添加了一个新属性 参考文章
GitHub 关于python的面试题
python类和对象之类属性和类变量
图解Python 【第五篇】面向对象-类-初级基础篇