首页 > 编程语言 >Python中的@property

Python中的@property

时间:2024-01-14 23:25:25浏览次数:31  
标签:Python self 访问 radius circle 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 方法,使得你能够对属性进行赋值时执行一些逻辑。




NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。
2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf

NLP工程化(公众号)

NLP工程化(知识星球)

标签:Python,self,访问,radius,circle,property,属性
From: https://www.cnblogs.com/shengshengwang/p/17964426

相关文章

  • Python中的__repr__()方法
      在Python中,__repr__()是一个特殊方法(magicmethod),用于定义对象的字符串表示形式。当你调用内置函数repr()或使用str()函数来获取对象的字符串表示时,实际上是调用了对象的__repr__()方法。  下面是一个简单的例子,演示了__repr__()的用法:class Person:    d......
  • Python中的__add__()方法
      在Python中,__add__()是一个特殊方法(magicmethod),用于定义对象之间的加法操作。当你使用+运算符对两个对象进行相加时,实际上会调用对象的__add__()方法。  下面是一个简单的例子,演示了__add__()的用法:class ComplexNumber:    def __init__(self, real, i......
  • Python中的__call__()方法
      在Python中,__call__()是一个特殊方法(magicmethod),用于使对象变成可调用(callable)。当一个对象实现了__call__()方法时,你可以像调用函数一样调用这个对象,就好像它是一个函数一样。  下面是一个简单的例子,演示了__call__()的用法:class CallableObject:    def _......
  • Python中的魔法方法
      Python中有很多魔法方法,它们以双下划线__开头和结尾,用于实现类的特殊行为。以下是一些常用的魔法方法:1.__init__(self,...)  初始化方法,用于创建对象并设置初始状态。2.__str__(self)  返回对象的非正式字符串表示形式,通过str()函数调用。3.__repr__(self)......
  • 使用 Python 和 Pygame 制作游戏:第六章到第八章
    第六章:贪吃虫原文:inventwithpython.com/pygame/chapter6.html译者:飞龙协议:CCBY-NC-SA4.0    如何玩贪吃虫贪吃虫是Nibbles的克隆。玩家开始控制一个不断在屏幕上移动的短蠕虫。玩家无法停止或减慢蠕虫,但他们可以控制它转向的方向。红苹果随机出现在屏幕上,玩家必......
  • 使用 Python 和 Pygame 制作游戏:第九章到第十章
    第九章:推星星原文:inventwithpython.com/pygame/chapter9.html译者:飞龙协议:CCBY-NC-SA4.0         如何玩推星星推星星是Sokoban或“箱子推动者”的克隆。玩家位于一个房间,里面有几颗星星。房间中的一些瓷砖精灵上有星星标记。玩家必须想办法将星星推到有星......
  • 案例学Python:filter()函数的用法,高级!
    大家好,这里是程序员晚枫,又来分享有用的Python知识了。Python之所以好用,是因为有大量用于科学计算的内置函数和第三方库。用好这些第三方库,可以显著提高我们编程的速度和质量。今天我们一起来看一下Python中一个重要的内置函数:filter。filter()是Python中的一个内置函数,用于......
  • Python的控制语句和循环语句
    当我们使用Python语言编写程序时,根据一些实际业务需求,就需要改变语句流的执行顺序,这时候就离不开Python的控制流语句,来控制代码执行的逻辑,这就是我们下面要讲的控制流语句。1、条件控制if假设有a,b两个数字,用Python打印出他们的大小关系。a=3b=5ifa<b:print("a<b"......
  • Python与C++联合编程
    C++代码#编译指令#gcc-otest.so-shared-fPICtest.cg++-otest.so-shared-fPICtest.cc#forc++#include<iostream>usingnamespacestd;extern"C"{//forC++intfoo(inta,intb){cout<<"a:"<<a<<&qu......
  • 快乐学Python,数据分析之使用爬虫获取网页内容
    在上一篇文章中,我们了解了爬虫的原理以及要实现爬虫的三个主要步骤:下载网页-分析网页-保存数据。下面,我们就来看一下:如何使用Python下载网页。1、网页是什么?浏览器画网页的流程,是浏览器将用户输入的网址告诉网站的服务器,然后网站的服务器将网址对应的网页返回给浏览器,由浏览器将......