更新时间:2024-05-14 来源:黑马程序员 浏览量:
在Python中,类的实例属性和类属性有几个重要区别:
1.实例属性:
(1)每个类的实例都有自己的一组实例属性,这些属性与特定实例相关联。
(2)实例属性在每个实例创建时都会被初始化,并且每个实例都可以有不同的属性值。
(3)实例属性通常在类的__init__方法中初始化,但也可以在其他方法中动态添加。
2.类属性:
(1)类属性属于类本身,而不是类的实例。
(2)类属性在整个类中是共享的,所有实例都共享相同的类属性。
(3)类属性通常在类的顶层定义,位于类的方法之外。
下面是一个简单的示例来说明这两者之间的区别:
class MyClass: class_attr = "I am a class attribute" def __init__(self, instance_attr): self.instance_attr = instance_attr # 创建两个实例 obj1 = MyClass("Instance attribute 1") obj2 = MyClass("Instance attribute 2") # 访问实例属性 print(obj1.instance_attr) # 输出: Instance attribute 1 print(obj2.instance_attr) # 输出: Instance attribute 2 # 访问类属性 print(MyClass.class_attr) # 输出: I am a class attribute print(obj1.class_attr) # 输出: I am a class attribute print(obj2.class_attr) # 输出: I am a class attribute # 修改类属性 MyClass.class_attr = "Modified class attribute" # 类属性被修改,所有实例共享相同的类属性值 print(MyClass.class_attr) # 输出: Modified class attribute print(obj1.class_attr) # 输出: Modified class attribute print(obj2.class_attr) # 输出: Modified class attribute
注意,在修改类属性时,所有实例都会受到影响,因为它们共享相同的类属性。而对实例属性的修改只会影响到该特定实例。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19