Python 的 @property 是什么?怎么实现属性控制?
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
@property 把方法变成属性访问(只读),配合 setter/deleter 实现属性读写控制:@property def name(self); @name.setter def name(self, value)(校验逻辑);@name.deleter。好处:① 接口不变下改内部实现(把字段升级为计算/校验属性);② 只读属性(只定义 getter);③ 校验赋值(类型、范围);④ 惰性计算缓存。注意:property 是描述符(descriptor protocol:__get__/__set__),也可用 __getattr__ 实现动态属性。
回复
0 条回复