Python中的@property

  在 Python 中,@property 是一种装饰器,用于将一个方法转换成只读属性。通过使用 @property 装饰器,你可以定义一个类的方法,使其在访问时可以像访问属性一样,而不是通过方法调用。

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

复制代码
class Circle:
    def __init__(self, radius):
        self._radius = radius  # 使用下划线表示属性是私有的

    @property
    def radius(self):
        """获取圆的半径."""
        return self._radius

    @property
    def diameter(self):
        """获取圆的直径."""
        return 2 * self._radius

    @property
    def area(self):
        """获取圆的面积."""
        return 3.14 * self._radius ** 2

# 示例用法
circle = Circle(5)
print("半径:", circle.radius)  # 访问为属性
print("直径:", circle.diameter)  # 访问为属性
print("面积:", circle.area)  # 访问为属性

  在这个例子中,radiusdiameterarea 方法被使用 @property 装饰器标记为只读属性。这意味着你可以像访问属性一样,直接通过 circle.radiuscircle.diametercircle.area 访问它们,而不需要使用括号调用方法。

  @property 常用于提供对类的内部变量的安全访问,同时允许在访问时执行一些额外的逻辑。此外,你还可以使用 @property 的 setter 方法,使得你能够对属性进行赋值时执行一些逻辑。

相关推荐
狮子雨恋几秒前
anaconda python环境和QT python环境不一致如何解决
开发语言·python·qt
旖旎夜光6 分钟前
【AI入门】大模型介绍全解析:从模型、LLM 到提示词与嵌入
人工智能·笔记·python·学习·ai编程
卷无止境7 分钟前
SIE:当一个推理引擎决定把100多个模型装进一个集群里
人工智能·python
IvanCodes13 分钟前
Python 基础语法(四):循环结构与流程控制
开发语言·python
卷无止境13 分钟前
Orca:当五个AI程序员同时给你打工
人工智能·python
邋遢道25 分钟前
# 企业级 Agent 从 0 到 1(三):推理循环——让模型自己决定停,它就停不下来
人工智能·python
ZGG00327 分钟前
MCP 02:MCP 的各类比对——和 Function Calling、A2A、Skill 到底什么关系
人工智能·后端·python
dllmayday35 分钟前
基于python-can仿真生成blf
python
Steve__evetS1 小时前
我的开源项目:python依赖安全修复助手
python·安全·agent
iNeuOS工业互联网1 小时前
多模态知识库,打通文本、图像与视频资源的协同实践与应用
人工智能·python·音视频