类属性和实例属性

复制代码
 1 '''
 2 在Python中,类属性和实例属性是面向对象编程中常用的概念.
 3 1. 类属性(Class Attributes):
 4     1. 类属性是属于整个类的属性,对所有实例对象共享。
 5     2. 类属性可以在类的内部或外部进行定义,通过类名或实例访问。
 6     3. 类属性通常用于表示类的共有特征或默认值。
 7     4. 类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了⼀个实例属性
 8 类属性的优点
 9     1. 记录的某项数据 始终保持⼀致时,则定义类属性。
10     2. 实例属性要求每个对象为其单独开辟⼀份内存空间来记录数据,⽽类属性为全类所共有
11     3. 仅占⽤⼀份内存,更加节省内存空间。
12 
13 2.实例属性(Instance Attributes):
14     1. 实例属性是属于每个实例对象的属性,不同实例之间可以有不同的实例属性值。
15     2. 实例属性在类的内部通过 self 关键字进行定义,并在实例化后通过实例对象进行访问。
16     3. 实例属性通常用于存储实例的独特状态或特定数据。
17 '''
18 
19 # 1. 类属性语法
20 class MyClass:
21     class_attribute = "This is a class attribute"
22 
23 # 访问类属性
24 print(MyClass.class_attribute)  # This is a class attribute
25 
26 # 1. 定义类,定义类属性
27 class Dog(object):
28     tooth = 10
29 
30 
31 # 2. 创建对象
32 wangcai = Dog()
33 xiaohei = Dog()
34 
35 # 3. 访问类属性: 类和对象
36 print(Dog.tooth)  # 通过类名.类属性名访问  10
37 print(wangcai.tooth)  # 通过实例名.类属性名访问  10
38 print(xiaohei.tooth)   # 10
39 #  坑1:  这样就相当于给wangcai实例增加一个实例属性(名字和类属性名同名),因此类属性的修改使用类名.属性名=xxx
40 wangcai.tooth  = 1 + wangcai.tooth
41 print(xiaohei.tooth)  # 10
42 print(wangcai.tooth)  # 11
43 
44 Dog.tooth = 30
45 print(xiaohei.tooth)  # 30
46 print(wangcai.tooth)  # 11
47 
48 
49 # 2. 实例属性
50 class MyClass:
51     def __init__(self):
52         self.instance_attribute = "This is an instance attribute"
53 
54 # 实例化对象并访问实例属性
55 obj = MyClass()
56 print(obj.instance_attribute)  # This is an instance attribute
复制代码

 

posted @   Allen_Hao  阅读(168)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示