Python property() 函数详解

掌握面向对象编程中优雅的属性控制方式

什么是 property()

在 Python 中,property() 是一个内置函数,用于将类的方法转换为只读或可读写的“属性”。 它提供了一种方式,在不改变接口的前提下,对属性的访问进行拦截和控制,常用于实现数据验证、懒加载、计算属性等。

基本语法

property(fget=None, fset=None, fdel=None, doc=None)

示例 1:使用 property() 函数

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

    def get_radius(self):
        return self._radius

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

    def del_radius(self):
        del self._radius

    radius = property(get_radius, set_radius, del_radius, "圆的半径")

# 使用
c = Circle(5)
print(c.radius)        # 调用 get_radius()
c.radius = 10          # 调用 set_radius()
del c.radius           # 调用 del_radius()

示例 2:使用 @property 装饰器(更常用)

class Rectangle:
    def __init__(self, width, height):
        self._width = width
        self._height = height

    @property
    def area(self):
        """计算矩形面积"""
        return self._width * self._height

    @property
    def width(self):
        return self._width

    @width.setter
    def width(self, value):
        if value <= 0:
            raise ValueError("宽度必须大于0")
        self._width = value

# 使用
r = Rectangle(4, 5)
print(r.area)     # 20
r.width = 6       # 触发 setter
print(r.area)     # 30

为什么使用 property

常见应用场景

日本 iPhone Pro Max 70 专题-未来科技新旗舰 Python离线安装pip完整指南-无需网络轻松配置 "You Are Nothing" 翻译与解析-中英文对照详解 Hearing That-探索声音与倾听的艺术 先锋工作|探索创新与突破的边界 使用 Python 搭建 Web 网站-入门指南与实战教程 精选合集-Compilation 专题页面 海南iPhone 17价格最新行情|海南苹果手机购买指南 韩版日版美版iPhone哪个好?全面对比选购指南 iPhone Air 电池容量详解|全面解析续航表现 Python字符串函数详解-常用方法与示例 Python IDLE 入门指南-轻量级 Python 集成开发环境 I Gained Confidence With Each Step|Personal Growth Journey “Something”中文翻译详解|常见用法与例句解析 国家开放大学在线学习平台-one.ouchn.cn 被情绪淹没:理解与面对强烈情感 Shein股权结构详解-股东、投资方与公司控制权分析 意大利Pinarello自行车-传奇工艺与速度的完美结合 Shein怎么样?全面评测与购物指南-真实体验分享 ponchioe立减980可信吗?全面解析与用户真实反馈 《匹诺曹》意大利电影在线观看-经典奇幻家庭影片 Python Web 开发 IDE 推荐与使用指南|高效开发工具大全 堆(Heap)数据结构详解-原理、应用与实现 OneChain-构建可信数字未来的区块链基础设施 Python 没有 pip?常见原因与解决方法|Python 开发指南 宝可梦剑盾与Pokémon HOME专题-宝可梦联动指南 Python没有IDLE怎么办?替代方案与解决方案大全 Pioneet-探索创新,引领未来 Python中shape[0]详解-NumPy数组维度入门指南 Python Web开发入门指南-构建高效Web应用的最佳实践 iPhone 17 台灣售價預測與最新消息|2026 最新資訊 Shein服装-时尚潮流女装、男装与配饰精选 Moncheri的隐喻意义:探索名字背后的象征与文化内涵 Python文件怎么用IDLE打开-新手入门指南 Python 对象转换详解-类型转换、序列化与反序列化指南 “Senior High”怎么读?发音、含义与用法详解 深入理解 Python 中的 eval() 函数|安全使用指南与示例 iPhone 16 是不是双卡双待?全面解析支持情况 日版 iPhone 在中国能用吗?全面解析支持情况与注意事项 iPhone 11 台湾版与大陆版对比详解|型号、网络、价格全解析 pioneers什么意思中文-先驱者、开拓者的含义与用法详解 Senior是大几?大学年级术语全解析 Expedition中文叫什么?探索“远征”一词的含义与用法 NS Online-任天堂Switch在线服务与游戏社区 Python 直接用 pip 语句吗?详解 pip 的正确使用方式 Champion旗下品牌大全|Champion子品牌与联名系列介绍 iPhone 17 Pro 512GB 最新价格行情|2026年权威报价与购买指南 iPhone手机发烫怎么解决?全面降温方法汇总 Python中sep参数怎么用?详解print函数的sep用法 韩版 iPhone 17 与日版区别详解|全面对比指南 Spider软件Python开发指南-网络爬虫入门与实战 Python怎么导入time模块-入门指南与实用示例 Web Python 开发指南-使用 Python 构建现代 Web 应用 Python中sep参数的用法详解-print函数分隔符指南 iPhone Air 港版-轻薄旗舰,尽在香港特别版 Endorphin是什么牌子?品牌介绍、产品特点与用户评价 CharacterPrecision-字符精度探索专题 iPhone美版序列号开头字母含义详解-快速识别美版机型 senior的音标-英语发音与释义详解 Python 编译机制详解|理解 Python 是如何运行的 You Are Nothing To Me-情感专题页面 Python中shape的用法详解-NumPy数组维度解析 Python int转字符串:完整指南与示例 意大利Pedrini品牌介绍-意式工艺与优雅设计 Pioneer先锋液晶电视-高清画质,沉浸体验 iPhone 15价格一览表-最新78TP与电商平台报价对比 Shopee卖家入口-免费入驻东南亚电商平台 iPhone 16 摄像头有变化吗?全面解析新机影像升级-科技前沿 Python学习中文指南-从入门到精通 SHEIN-时尚快消品牌|每日上新,全球潮流穿搭 “Incorporates” 翻译详解|英文单词中文释义与用法指南 Shein创始人许仰天:从程序员到快时尚帝国缔造者 Python 自带的 pip 在哪里?完整指南 Phyon编程-轻量、高效、现代的Python替代语言 Python怎么用-新手入门指南与实用技巧 iPhone 16价格暴跌?最新行情与购买指南-科技快讯 Champion 衣服品牌7LONGWEN|经典美式运动服饰 简体中文(Simplified Chinese)文化与语言专题 听见世界:探索听觉的奥秘与声音之美 台灣版 iPhone 17 預測與資訊專區|最新設計、規格與上市時間 I Have No One – 在孤独中寻找共鸣 Nice-发现生活中的美好瞬间 希音(SHEIN)招聘-加入全球领先的时尚科技公司 Python int代表什么?详解整数类型及其用法 台灣版 iPhone 17 卡?最新消息與常見問題解析 用“senior high”造句-英语学习专题页 iPhone Air 是合约机吗?全面解析与购买指南 iPhone发烫是什么原因?全面解析与解决方法-手机使用指南 Pixelmon重铸-全新宝可梦模组,重返像素世界 Python pip 命令详解-快速上手与实用指南 MicroPython 入门教程-快速上手嵌入式 Python 编程 endorphin微信名:灵感、含义与个性表达 “Bon Appétit”正确发音指南-轻松掌握法语美食用语 mpython 与 Python:编程教育新体验 Oni Chichi 2-探索奇幻与亲情交织的冒险世界 港版 iPhone eSIM 国内能用吗?2026 最新实测与指南 Shine电商平台-闪耀品质,点亮生活 Please Be Nice to Me-传递善意与尊重的专题页面 Persona图鉴-探索人格面具的神秘世界 Pokémon HOME 是什么?宝可梦云存储服务详解