实例属性和类属性
Python 类属性与实例属性详解
1. 属性基本概念
在 Python 中,类和实例都可以拥有属性,但它们的绑定方式和作用范围有所不同:
- 实例属性:属于特定实例的属性,通过
self或实例变量绑定 - 类属性:属于类本身的属性,直接在类中定义
2. 实例属性
实例属性是最常见的属性类型,每个实例都有自己独立的属性副本:
实例属性也可以在创建后动态添加:
3. 类属性
类属性属于类本身,所有实例共享:
4. 属性访问优先级
当实例属性和类属性同名时,实例属性会优先被访问:
5. 最佳实践
- 避免同名:不要为实例属性和类属性使用相同的名字
- 类属性用于共享数据:适合存储类级别的常量或统计信息
- 实例属性用于实例特有数据:每个实例需要独立维护的数据
6. 实用示例:统计实例数量
7. 现代 Python 中的属性管理
在 Python 3.7+ 中,可以使用 @dataclass 更清晰地管理属性:
8. 总结
遵循这些原则可以避免属性访问中的常见错误,并编写更清晰、更易维护的代码。

