iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中@property的作用是什么
  • 607
分享到

Python中@property的作用是什么

2023-06-15 15:06:35 607人浏览 安东尼

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

摘要

本篇文章给大家分享的是有关python中@property的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、使用@property优点将类方法转换为类属性,可以用来

本篇文章给大家分享的是有关python中@property的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、使用@property优点

将类方法转换为类属性,可以用来直接获取属性值或者对属性进行赋值。

案例分析

例:

class Exam(object):     def __init__(self, score):         self._score = score      def get_score(self):         return self._score      def set_score(self, val):         if val < 0:             self._score = 0         elif val > 100:             self._score = 100         else:             self._score = val  e = Exam(60) print(e.get_score())  e.set_score(70) print(e.get_score())

Python中@property的作用是什么

代码解析:

定义了一个 Exam 类,为了避免直接对 _score 属性操作,提供了 get_score 和 set_score  方法,这样起到了封装的作用,把一些不想对外公开的属性隐蔽起来,而只是提供方法给用户操作,在方法里面,可以检查参数的合理性等。

Python 提供了 property 装饰器,被装饰的方法,可以将其『当作』属性来用。

例 :

class Exam(object):     def __init__(self, score):         self._score = score      @property     def score(self):         return self._score      @score.setter     def score(self, val):         if val < 0:             self._score = 0         elif val > 100:             self._score = 100         else:             self._score = val   e = Exam(60) print(e.score)  e.score = 90 print(e.score)  e.score = 200 print(e.score)

Python中@property的作用是什么

注:

给方法 score 加上了 @property,于是可以把 score  当成一个属性来用,此时,又会创建新的score.setter,它可以把被装饰的方法变成属性来赋值。

另外,也不一定要使用 score.setter 这个装饰器,这时 score 就变成一个只读属性:

class Exam(object):     def __init__(self, score):         self._score = score      @property     def score(self):         return self._score  e = Exam(60) print(e.score) e.score = 200  # score 是只读属性,不能设置值 print(e.score)

Python中@property的作用是什么

二、@property的力量

python处理上述问题的方法是使用property。可以这样来实现它。

例 :

class Celsius:     def __init__(self, temperature = 0):         self.temperature = temperature      def to_fahrenheit(self):         return (self.temperature * 1.8) + 32      def get_temperature(self):         print("获得的值")         return self._temperature      def set_temperature(self, value):         if value < -273:             raise ValueError("零下273度是不可能的")         print("设定值")         self._temperature = value      temperature = property(get_temperature,set_temperature)

并且,一旦运行,在shell中发出以下代码。

c = Celsius() print(c.temperature)

创建对象时,将调用init ()方法。此方法的线为self.temperature = temperature。

此分配自动称为set_temperature()。

Python中@property的作用是什么

2. 属性的作用。

任何访问如c.temperature都会自动调用get_temperature()。

例:

c.temperature = 37 print(c.temperature) print(c.to_fahrenheit())

Python中@property的作用是什么

注:

温度值存储在私有变量_temperature中。temperature属性是一个属性对象,它提供了与此私有变量的接口。

三、深入了解property

在Python中,property()是一个内置函数,用于创建并返回属性对象。

语法

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

参数解析

fget为获取属性值的函数,fset为设置属性值的函数,fdel为删除属性的函数,doc为字符串(如注释)。从实现中可以看出,这些函数参数是可选的。

可以简单地按照以下方式创建属性对象。

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

Python中@property的作用是什么

1. 属性对象有三个方法,getter()、setter()和deleter()。

语法:

temperature = property(get_temperature,set_temperature)

用于稍后指定fget、fset和fdel。

# 创建空属性 temperature = property() # 设置 fget temperature = temperature.getter(get_temperature) # 设置 fset temperature = temperature.setter(set_temperature)

注:

这两段代码是等效的。

不定义名称get_temperature,set_temperature。

因为它们是不必要的,并且会影响类命名空间。为此,在定义getter和setter函数时重用了名称temperature。

2. 案例

例:

class Celsius:     def __init__(self, temperature = 0):         self._temperature = temperature      def to_fahrenheit(self):         return (self.temperature * 1.8) + 32      @property     def temperature(self):         print("获得值")         return self._temperature      @temperature.setter     def temperature(self, value):         if value < -273:             raise ValueError("零下273度是不可能的")         print("零下273度是不可能的")         self._temperature = value c=Celsius() c.temperature = 37 print(c.temperature)

Python中@property的作用是什么

注:

实现是制作属性的简单方法和推荐方法。在Python中寻找属性时,很可能会遇到这些类型的构造。

以上就是Python中@property的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网Python频道。

--结束END--

本文标题: Python中@property的作用是什么

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中@property的作用是什么
    本篇文章给大家分享的是有关Python中@property的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、使用@property优点将类方法转换为类属性,可以用来...
    99+
    2023-06-15
  • Python中property属性的作用是什么
    本篇内容主要讲解“Python中property属性的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中property属性的作用是什么”吧!前言Python 动态属性的概念...
    99+
    2023-06-30
  • Python Property装饰器的作用是什么
    本篇内容介绍了“Python Property装饰器的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. property装饰器的...
    99+
    2023-06-15
  • python中的@property是什么
    这篇文章主要讲解了“python中的@property是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中的@property是什么”吧! 说明内置的@propert...
    99+
    2023-06-20
  • java中property标签的作用是什么
    在Java中,property标签是一种用于定义类的属性的标签。它的作用是将类的属性与XML配置文件中的属性进行绑定,从而实现属性的...
    99+
    2023-09-16
    java
  • python中property函数的怎样是什么
    这篇文章将为大家详细讲解有关python中property函数的怎样是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python主要应用领域有哪些1、云计算,典型应用OpenStack。...
    99+
    2023-06-14
  • python @property用法作用
    @property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。详见链接:廖雪峰python3使用@property练习请利用@property给一个Screen对象加...
    99+
    2023-01-31
    作用 python property
  • CSS中的@property特性是什么
    小编给大家分享一下CSS中的@property特性是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是csscss是一种用来表现HTML或XML等文件样式的...
    99+
    2023-06-14
  • python中 =的作用是什么
    本篇文章为大家展示了python中 =的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillo...
    99+
    2023-06-14
  • python中“+=”的作用是什么
    本篇内容介绍了“python中“+=”的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在python中,“+=”是指“加赋值”运算...
    99+
    2023-07-04
  • python中%的作用是什么
    python中%的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;...
    99+
    2023-06-14
  • python中 -=的作用是什么
    本篇文章为大家展示了python中 -=的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网...
    99+
    2023-06-14
  • python中的作用是什么
    这期内容当中小编将会给大家带来有关python中的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;...
    99+
    2023-06-14
  • python中@property怎么使用
    本篇内容介绍了“python中@property怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.什么是property简单地说就是...
    99+
    2023-07-02
  • python中bin的作用是什么
    python中bin的作用是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而...
    99+
    2023-06-14
  • python中truncate的作用是什么
    这篇文章将为大家详细讲解有关python中truncate的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序...
    99+
    2023-06-14
  • python中class的作用是什么
    今天就跟大家聊聊有关python中class的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专...
    99+
    2023-06-14
  • python中pip的作用是什么
    这篇文章将为大家详细讲解有关python中pip的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.requesuts;2.scrap...
    99+
    2023-06-14
  • python中mro的作用是什么
    这篇文章将为大家详细讲解有关python中mro的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.requesuts;2.scrap...
    99+
    2023-06-14
  • Python中pass的作用是什么
    本篇文章给大家分享的是有关Python中pass的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、pass定义一个类,类中没有任何内容  保存运行后,该...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作