@property 是 Python 中实现属性封装的核心机制,支持通过装饰器定义只读属性、@xxx.setter 实现赋值校验、@xxx.deleter 处理删除操作,并可用 property() 函数动态构建。
Python 中的 @property 是控制属性访问的核心机制,它让方法像属性一样被调用,同时支持自定义获取、设置和删除逻辑,是实现封装与数据校验的关键工具。
传统类中常通过 get_xxx() 方法读取私有属性,但这样调用不自然。@property 可将方法“伪装”成普通属性,直接用 obj.xxx 访问,背后却能执行计算或校验逻辑。
@property 装饰器,该方法就变成只读属性仅用 @property 创建的是只读属性。要支持赋值,需配套定义同名的 @xxx.setter 方法,它会在 obj.xxx = value 时自动触发。
当需要拦截 del obj.xxx 操作时,可添加 @xxx.deleter 方法。它不常用,但在清理资源、重置状态或禁止删除时很实用。
del 会报 AttributeError
装饰器写法更常见,但 property() 函数也完全可用,尤其适合运行时动态生成属性,或兼容旧代码风格。
attr = property(fget, fset, fdel, doc)

None