返回顶部
首页 > 资讯 > 后端开发 > Python >python中@Property属性使用方法
  • 240
分享到

python中@Property属性使用方法

2024-04-02 19:04:59 240人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、前言二、创建用于计算的属性三、为属性添加安全保护机制一、前言 本文介绍的属性与类属性和实例属性不同。类属性和实例属性介绍的属性将返回所存储的值。而本文要介绍的属性是一种特殊的

一、前言

本文介绍的属性与类属性和实例属性不同。类属性和实例属性介绍的属性将返回所存储的值。而本文要介绍的属性是一种特殊的属性,访问它时将计算它的值。另外,该属性还可以为属性添加安全保护机制。

二、创建用于计算的属性

python中,可以通过@property(装饰器)将一个方法转换为属性,从而实现用于计算的属性。将方法转换为属性后,可以直接通过方法名来访问方法,而不需要再添加一对小括号“()”,这样可以让代码更简洁。

通过@property创建用于计算的属性的语法格式如下:

@property
def methodname(self):
	block

参数说明:

  • methodname:用于指定方法名,一般使用小写字母开头。该名称最后将作为创建的属性名。
  • self:必要参数,表示类的实例。
  • block:方法体,实现的具体功能。在方法体中,通常以return语句结束,用于返回计算结果。

例如,定义一个矩形类,在__init__()方法中定义两个实例属性,然后再定义一个计算矩形面积的方法,并应用@property将其转换为属性,最后创建类的实例,并访问转换后的属性

代码如下:

class Rect:
    def __init__(self, width, height):
        self.width = width  # 矩形的宽
        self.height = height  # 矩形的高
    @property  # 将方法转换为属性
    def area(self):
        return self.width * self.height  # 返回矩形的面积
rect = Rect(800, 600)  # 创建实例
print("面积为:", rect.area)  # 输出属性值

运行上面代码,将显示以下运行结果:

三、为属性添加安全保护机制

Python中,默认情况,创建的类属性或者实例,是可以在类体外进行修改的,如果想要限制其不能在类体外修改,可以将其设置为私有的,但是设置为私有后,在类体外也不能获取它的值。如果想要创建一个可以读取,但不能修改的属性,那么可以使用 @property 实现只读取属性。

例如,创建一个电视节目类TVshow,再创建一个show属性,用于显示当前播放的电视节目,代码如下:

class TVshow:  # 定义电视节目类
    def __init__(self, show):
        self.__show = show
    @property  # 将方法转换为属性
    def show(self):  # 定义show()方法
        return self.__show  # 返回私有属性值
tvshow = TVshow("正在播放《战狼》")  # 创建类的实例
print("默认:", tvshow.show)  # 获取属性值

运行上面代码,将显示以下运行结果:

通过上面的方法创建的show属性是只读的,尝试修改属性值,再重新获取。在上面代码的下方法添加以下代码:

tvshow.show = "正在播放《红海行动》"
print("修改后:", tvshow.show)

运行后,将显示如下图所示的运行结果,其中红字的异常信息就是修改属性show时抛出的异常。

通过@不仅可以将属性设置为只读性,而且可以为属性设置拦截器,即允许对属性进行修改,但是修改时需要遵守一定约束。

到此这篇关于python中@Property属性使用方法的文章就介绍到这了,更多相关python @Property 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python中@Property属性使用方法

本文链接: https://lsjlt.com/news/118817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python中@Property属性使用方法
    目录一、前言二、创建用于计算的属性三、为属性添加安全保护机制一、前言 本文介绍的属性与类属性和实例属性不同。类属性和实例属性介绍的属性将返回所存储的值。而本文要介绍的属性是一种特殊的...
    99+
    2024-04-02
  • python中@Property属性如何使用
    这篇文章主要介绍“python中@Property属性如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中@Property属性如何使用”文章能帮助大家解决问题。一、前言本文介绍的属...
    99+
    2023-07-02
  • Python中property标签属性怎么使用
    在Python中,可以使用@property装饰器来定义一个属性的getter方法,并使用@property.setter装饰器来定...
    99+
    2023-09-16
    Python
  • Python中property属性的用处详解
    目录前言限制值使用 @property 的方式代替。动态属性的好处动态显示附:用property代替getter和setter方法总结前言 Python 动态属性的概念可能会被面试问...
    99+
    2024-04-02
  • Python中property属性的作用是什么
    本篇内容主要讲解“Python中property属性的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中property属性的作用是什么”吧!前言Python 动态属性的概念...
    99+
    2023-06-30
  • python中property装饰器的使用方法
    这篇文章主要介绍python中property装饰器的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和...
    99+
    2023-06-15
  • Python中静态方法,类方法,属性方法使用方法
    目录1.静态方法2.类方法3.静态方法与类方法总结4.属性方法1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普...
    99+
    2024-04-02
  • css中的transition-property属性怎么用
    小编给大家分享一下css中的transition-property属性怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  ...
    99+
    2024-04-02
  • python @property 装饰器使用方法
    目录一、property的装饰器用法二、举例说明1.不用setter和getter方法的实现2.使用setter和getter的实现,增加温度值输入的限制3.利用property装饰...
    99+
    2024-04-02
  • Python中静态方法,类方法,属性方法怎么使用
    本篇内容介绍了“Python中静态方法,类方法,属性方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.静态方法通过@static...
    99+
    2023-06-30
  • python中关于property的最详细使用方法
    为什么要写这篇文章 其实是因为最近学到了python的property装饰器的相关知识,刚开始学得云里雾里,于是乎,看了许多相关博客,不巧,大概是自己基础不太好吧,真心感觉许多人写的...
    99+
    2024-04-02
  • Python 使用@property对属性进行数据规范性校验的实现
    在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合...
    99+
    2024-04-02
  • python中的property及属性与特性之间的优先权
    目录 前言属性(attribute)属性的定义属性的用法特性(property)特性的定义特性的用法特性的使用场景属性和特性之间的差别和联系属性和特性之间的优先权 ...
    99+
    2024-04-02
  • python中类中属性和方法怎么定义使用
    今天小编给大家分享一下python中类中属性和方法怎么定义使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • css中clear属性的使用方法
    本篇内容主要讲解“css中clear属性的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css中clear属性的使用方法”吧!定义和用法clear 属性...
    99+
    2024-04-02
  • HTML5中的Scoped属性使用方法
    这篇文章主要介绍“HTML5中的Scoped属性使用方法”,在日常操作中,相信很多人在HTML5中的Scoped属性使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HT...
    99+
    2024-04-02
  • CSS中position属性的使用方法
    本篇内容主要讲解“CSS中position属性的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中position属性的使用方法”吧!positio...
    99+
    2024-04-02
  • CSS3中filter属性的使用方法
    小编给大家分享一下CSS3中filter属性的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近在修改内网门户的时候,恰好遇到了需要使用滤镜的地方;刚开始...
    99+
    2023-06-08
  • CSS中bottom属性的使用方法
    CSS中的bottom属性用于设置元素相对于其父元素的底部边缘位置。通过调整bottom属性的值,可以改变元素在垂直方向上的位置。下面将具体介绍bottom属性的作用和使用方法,并提供...
    99+
    2024-02-26
    css 绝对定位 相对定位
  • Series中str属性repeat方法的使用方法
    小编给大家分享一下Series中str属性repeat方法的使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在pandas处理字符串的操作中,会先获取Series的str属性,然后在属性上调用函数进行字符串的一系列操...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作