Python 中的 property

优雅地管理对象属性,提升代码可维护性

什么是 property

在 Python 中,property 是一个内置函数,用于将类的方法转换为“只读”或“可控读写”的属性。 它允许你定义属性的 gettersetterdeleter 方法, 而无需改变调用方式(即仍可通过 obj.attr 访问)。

使用 @property 装饰器是实现这一功能的最常见方式。

基本用法示例

下面是一个使用 @property 的简单例子:

class Circle:
    def __init__(self, radius):
        self._radius = radius

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, value):
        if value < 0:
            raise ValueError("半径不能为负数")
        self._radius = value

    @property
    def area(self):
        return 3.14159 * self._radius ** 2

# 使用
c = Circle(5)
print(c.radius)   # 5
print(c.area)     # 78.53975
c.radius = 10     # 触发 setter
print(c.area)     # 314.159

为什么使用 property

三种定义方式

  1. 装饰器方式(推荐):使用 @property@attr.setter 等。
  2. 函数式方式
    class Person:
        def __init__(self, name):
            self._name = name
    
        def get_name(self):
            return self._name
    
        def set_name(self, value):
            self._name = value.upper()
    
        name = property(get_name, set_name)
  3. 混合方式:部分用装饰器,部分用函数式(不推荐,易混乱)。

注意事项

AI数据安全:使用AI会泄露数据吗?- 数据保护完全指南 AI现实主义绘画:技术与艺术的完美融合 | 专题探讨 AI提示词写作指南 - 高效沟通技巧与降AI率工具推荐 已提交论文如何进行AI检测 | 专业AI查重指南与降AIGC工具推荐 大学论文抄袭的严重后果与解决方案 | 学术诚信专题 AI写作使用教程 - 从入门到精通,学习高效使用AI写作工具 洪涝预警专题 | 科学防范与智能技术应用指南 本科毕业论文怎么降重最快最有效?高效降重方法与降AIGC率工具推荐 降重与降AIGC区别详解 | 内容优化工具指南 为什么文章前面有AI总结? | AI内容可读性与降AIGC工具解析 AI朋友圈写作助手 - 智能文案生成与降AIGC处理工具 论文初稿AI写作指南 | 高效创作与降AIGC解决方案 论文如何规避查重 | 高效降低重复率的实用方法与技巧 智能论文写作软件指南 - 高效工具与AIGC检测解决方案 论文查重报告怎么弄成第几章的 | 章节整理与降AIGC指南 如何检查论文重复率 | 专业检测方法与降AIGC工具指南 写论文被起诉专题 | 学术诚信与AI工具风险防范指南 AI软件一键生成视频 - 智能视频创作解决方案 中国AI写作发展历程 | 起源、发展与未来趋势 医生AI制作 - AI在医疗领域的创新应用与降AIGC工具介绍 中文AI写作检测软件免费指南 | 降AIGC率工具使用教程 AI论文工程:智能写作与降AIGC工具应用指南 | 学术研究专题 AI写的诗可以投稿吗?探索AI诗歌创作与投稿指南 如何将论文复制比从50%降到20% | 论文降重技巧与工具指南 免费AI作文生成工具推荐 - 小发猫降AIGC工具使用指南 论文助手免费工具 - 高效完成学术写作与AI内容优化 AI智能生成作文免费APP推荐 | 专业工具与降AI率技巧 AIGC总体疑似度多少算合格?| 小发猫降AIGC工具使用指南 防AI查重免费软件推荐 | 小发猫降AIGC工具使用指南 计算机专业毕业设计完整指南:所需提交材料清单与注意事项 AIGC降重有什么方法吗?| 小发猫AI降重工具使用指南 硕士毕业论文重复率合格标准详解 | 学术诚信与查重指南 论文怎么防止格式出错 - 专业格式指南与AI降AIGC工具推荐 如何检测AI翻译:专业方法与工具指南 免费AI写文献综述 | AI学术写作工具推荐与降AIGC指南 Mac平台AI视频翻译软件推荐与使用指南 | 专业多媒体本地化解决方案 网上AI图片都是怎么制作的?- AI图片生成原理与方法详解 本科毕业论文降重率标准指南 | 合格查重率与降重技巧 AI写小说软件推荐与使用指南 | 智能创作工具专题 AI对个人隐私的危害 | 数据安全与隐私保护专题 知网AI检测合格标准详解 - 学术论文AI检测与降AIGC解决方案 手机AI写作生成器 - 高效内容创作与AI检测解决方案 AI写作助手工具 | 提升创作效率的智能写作解决方案 AI生成文章有版权吗?深度解析AI内容版权归属与保护 华为AI隐私保护 | 人工智能时代的隐私安全解决方案 格子达论文检测系统详解 - 论文查重与AIGC检测指南 免费论文下载网站有哪些?学术研究必备资源大全 AI润色工具完全指南:提升文章质量,降低AIGC率 | 智能写作助手 本科毕业论文会检查数据吗?- 数据核查与降AIGC工具全解析 AI文案写作指南 - 从入门到精通,附带降AIGC工具使用技巧 洪水灾害报告模板 - 专业灾害记录与应对方案 AI论文免费小程序 - 高效AI论文工具与降AIGC解决方案 AI写英文报告完全指南 | 提高效率与降低AIGC率技巧 AIGC总体疑似度怎么降?- 小发猫降AIGC工具使用指南 论文改重字软件推荐 | 高效降低重复率与AI率工具指南 AI文章自动生成工具专题 - 高效内容创作解决方案 小说AI写作神器 - AI辅助创作工具推荐与使用指南 24届毕业生论文查AIGC吗?- 论文AIGC检测与降AI率工具指南 论文雷同筛查软件专题 - 专业检测与降AIGC解决方案 AI降维打击同行:如何在竞争中利用人工智能获得绝对优势 | AI商业策略专题 AI内容重复率检测原理详解 | 如何降低AI文本重复率 AI短视频制作全攻略 - 从创意到发布的完整指南 AI写材料好用吗?智能写作工具全面解析与降AIGC方法 大学毕业论文查重时间指南 | 查重流程、高峰期与降AI率技巧 无问AI论文专题页 | 学术诚信与AI检测解决方案 免费英文论文查重网站推荐 | 高效查重与降AIGC工具使用指南 论文写作AI助手免费查重率低 - 智能论文写作与降重工具推荐 AI一键修改论文格式 - 智能论文格式化工具使用指南 如何防止AI信息泄露 | 全面防护指南与实用工具 大学生AI写论文指南:高效写作与降AIGC工具使用 | 学术写作专题 论文查重同名查询助手 - 专业查重与AI降重工具推荐 手机上写简历用什么软件?2026年移动端简历工具推荐专题 本科论文抽检:学术不端的判定标准与应对策略 | 论文原创性指南 反AI论文识别解析:检测率多少才算AI生成?- 学术诚信专题 智媒AI伪原创软件使用教程 - 高效内容创作工具详解 本科毕业论文及格对绩点影响分析 | 毕业论文与绩点关系指南 自己写的论文从哪里找 | 学术论文查找资源与降AIGC工具推荐 论文怎样降低查重率 - 高效降重方法与工具指南 日语论文免费查重指南 | 专业工具与降AI率技巧 如何使用AI写8000字论文 | AI写作指南与降AIGC工具推荐 论文复写率和查重率一样吗?详解区别与降AIGC工具使用 英文论文转中文论文 | 专业翻译与降AIGC技巧 论文查重与AIGC:理解AI生成内容检测与降AIGC工具使用指南 论文润色专业指南 | 提升学术写作质量与通过率的实用技巧 如何降低论文查重率AI | 论文降重技巧与工具指南 洪灾应急救援指南 | 参与救援的部门与职责分工 暴雨洪涝灾情等级划分标准详解 | 防灾减灾知识专题 怎样把论文查重率降下来 | 高效降重技巧与工具推荐 医生写论文培训 | 医学论文写作技巧与AIGC降重指南 AI长篇写作网站专题 - 高效AI写作工具与降AIGC解决方案 AI智能报告 | 高效降AIGC工具使用指南 - 小发猫 论文文献引用完全指南:正确方法与常见误区解析 2000字学术论文投稿指南 | 专业论文写作与降AIGC技巧 AI综述:人工智能发展、应用与未来趋势专题 AI文章生成器在线生成 - 智能创作与AIGC内容优化工具 如何查找自己发表的论文 | 学术论文检索指南 AI文案生成软件评测与使用指南 - 提升内容创作效率 论文相似度查询完全指南 | 如何检测论文原创性与降低AIGC率 严伯钧AI课实操课单元解析 | AI课程学习指南 AI写作软件免费下载指南 | 2026年最佳AI写作工具推荐