五、实例属性与类属性学习笔记
2026-02-21
Python基础
type
Post
status
Published
date
Feb 21, 2026
slug
python-instance-and-class-attribute-learning-notes-5
summary
什么时候用类属性。后来才明白,实例属性就像是每个人的钱包——每个人有自己的;类属性就像是学校的校名——所有学生共享同一个!
tags
category
Python基础
icon
password
💡 学习感悟:什么时候用类属性。后来才明白,实例属性就像是每个人的钱包——每个人有自己的;类属性就像是学校的校名——所有学生共享同一个!
1. 实例属性
1.1 什么是实例属性?
实例属性是属于具体对象的属性,每个对象独立拥有。
📝 我的理解:实例属性就像是个人档案——每个学生有自己的姓名、年龄,修改一个不会影响另一个。
1.2 动态添加实例属性
⚠️ 注意:Python 允许动态添加属性,但不推荐,容易让代码难以维护!
2. 类属性
2.1 什么是类属性?
类属性是属于类的属性,所有实例共享。
📝 我的理解:类属性就像是公共资源——学校的图书馆、操场,所有学生共享。
2.2 修改类属性
📝 我的理解:修改类属性就像是学校改名——一改全改,所有学生都知道新名字。
3. 实例属性 vs 类属性
3.1 对比表
特性 | 实例属性 | 类属性 |
定义位置 | __init__ 中,self.属性 | 类内部,方法外部 |
归属 | 属于实例 | 属于类 |
共享性 | 每个实例独立 | 所有实例共享 |
访问方式 | 实例.属性 | 类.属性 或 实例.属性 |
修改影响 | 只影响当前实例 | 影响所有实例 |
3.2 内存示意图
4. 属性查找顺序
4.1 查找规则
📝 我的理解:属性查找就像是找东西——先翻自己口袋(实例属性),没有就去公共区域(类属性)找。
4.2 实例属性遮蔽类属性
📝 我的理解:实例属性遮蔽就像是个人习惯覆盖集体规定——学校规定8点上课(类属性),但你习惯7点到(实例属性),你自己的习惯优先。
5. 类属性的陷阱
5.1 可变类属性
⚠️ 踩坑:类属性使用可变对象(list、dict)时,所有实例共享,修改会影响全部!
5.2 正确使用可变属性
📝 我的理解:可变数据(list、dict)应该作为实例属性,每个对象有自己的一份,互不干扰。
6. 类属性的使用场景
6.1 计数器
📝 我的理解:类属性计数器就像是签到表——每来一个学生签个到,总数自动更新。
6.2 常量配置
📝 我的理解:类属性配置就像是系统设置——数据库地址、端口号,所有连接共享同一套配置。
7. 核心知识点整理
7.1 选择实例属性还是类属性?
场景 | 推荐 | 原因 |
每个对象不同的数据 | 实例属性 | 独立存储 |
所有对象共享的数据 | 类属性 | 节省内存 |
计数、统计 | 类属性 | 全局共享 |
配置、常量 | 类属性 | 统一修改 |
可变数据(list、dict) | 实例属性 | 避免意外共享 |
7.2 属性查找顺序
7.3 类属性 vs 实例属性模板
Loading...
