使用@property
Python @property 装饰器教程
1. 为什么需要属性装饰器
在面向对象编程中,直接暴露类的属性虽然方便,但会失去对属性赋值的控制:
为了解决这个问题,传统做法是使用 getter 和 setter 方法:
但这种方法调用不够简洁,Python 提供了更好的解决方案 - @property 装饰器。
2. @property 的基本用法
@property 装饰器可以将方法转换为属性,同时保持对赋值的控制:
使用方式:
3. 只读属性
只定义 getter 方法而不定义 setter 方法可以创建只读属性:
使用示例:
4. 注意事项
- 避免属性名与方法名冲突:
正确做法是使用不同的名称,通常加下划线前缀:
- 属性初始化:在
__init__方法中初始化属性
5. 实际应用示例
屏幕分辨率计算
测试代码:
6. 最佳实践
- 使用
@property封装需要验证或计算的属性 - 保持 getter 方法简单,避免复杂计算
- 在 setter 方法中进行输入验证
- 对于只读属性,只提供 getter 方法
- 使用下划线前缀命名内部存储变量
7. 总结
@property 装饰器是 Python 中实现属性访问控制的优雅方式,它:
- 使代码更简洁直观
- 保持对属性赋值的控制
- 支持只读属性
- 允许在访问属性时执行额外逻辑
通过合理使用 @property,可以编写出既安全又易用的类接口。

