返回顶部
首页 > 资讯 > 后端开发 > Python >python中@property怎么使用
  • 619
分享到

python中@property怎么使用

2023-07-02 11:07:17 619人浏览 八月长安

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

摘要

本篇内容介绍了“python中@property怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.什么是property简单地说就是

本篇内容介绍了“python中@property怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.什么是property

简单地说就是一个类里面的方法一旦被@property装饰,就可以像调用属性一样地去调用这个方法,它能够简化调用者获取数据的流程,而且不用担心将属性暴露出来,有人对其进行赋值操作(避免使用者的不合理操作)。需要注意的两点是

  • 调用被装饰方法的时候是不用加括号的

  • 方法定义的时候有且只能有self一个参数

>>> class Goods():        def __init__(self,unit_price,weight):            self.unit_price = unit_price            self.weight = weight        @property        def price(self):            return self.unit_price * self.weight>>> lemons = Goods(7,4)>>>>>> lemons.price28

上面通过调用属性的方式直接调用到 price 方法,property把复杂的处理过程封装到了方法里面去,取值的时候调用相应的方法名即可。

2.property属性定义的两种方式

A、装饰器方式

在类的方法上应用@property装饰器,即上面那种方式。

B、类属性方式

创建一个实例对象赋值给类属性

>>> class Lemons():        def __init__(self,unit_price=7):            self.unit_price = unit_price        def get_unit_price(self):            return self.unit_price        def set_unit_price(self,new_unit_price):            self.unit_price = new_unit_price        def del_unit_price(self):            del self.unit_price        x = property(get_unit_price, set_unit_price, del_unit_price)>>> fruit = Lemons()>>> >>> fruit.x                         #调用 fruit.x 触发 get_unit_price7>>> >>> fruit.x = 9                     #调用 fruit.x = 9 触发 set_unit_price>>> >>> fruit.x9>>> >>> fruit.unit_price                #调用 fruit.unit_price 触发 get_unit_price9>>> del fruit.x                     #调用 del fruit.x 触发 del_unit_price >>> >>> fruit.unit_priceTraceback (most recent call last):  File "<pyshell#23>", line 1, in <module>    l.unit_priceAttributeError: 'Lemons' object has no attribute 'unit_price'

property方法可以接收四个参数

  • 第一个参数是获得属性的方法名,调用 对象.属性时自动触发

  • 第二个参数是设置属性的方法名, 给属性赋值时自动触发

  • 第三个参数是删除属性的方法名,删除属性时自动触发

  • 第四个参数是字符串,是属性的描述文档,调用对象.属性.doc时触发

3.用property代替getter和setter方法

>>>class Watermelon():       def __init__(self,price):           self._price = price                  #私有属性,外部无法修改和访问        def get_price(self):           return self._price        def set_price(self,new_price):           if new_price > 0:               self._price = new_price           else:               raise 'error:价格必须大于零'

用property代替getter和setter

>>>class Watermelon():       def __init__(self,price):           self._price = price       @property                          #使用@property装饰price方法       def price(self):           return self._price       @price.setter                      #使用@property装饰方法,当对price赋值时,调用装饰方法       def price(self,new_price):           if new_price > 0:               self._price = new_price           else:               raise 'error:价格必须大于零'>>> watermelon = Watermelon(4)>>> >>> watermelon.price4>>> >>> watermelon.price = 7>>> >>> watermelon.price7

Python中@property怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: python中@property怎么使用

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

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

猜你喜欢
  • python中@property怎么使用
    本篇内容介绍了“python中@property怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.什么是property简单地说就是...
    99+
    2023-07-02
  • Python中property标签属性怎么使用
    在Python中,可以使用@property装饰器来定义一个属性的getter方法,并使用@property.setter装饰器来定...
    99+
    2023-09-16
    Python
  • python使用@property @x
    @property可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的。 1》只...
    99+
    2023-01-31
    python property
  • python中@property装饰器怎么用
    这篇文章主要介绍python中@property装饰器怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、property的装饰器用法先简单上个小栗子说明:class property(fget=None,fse...
    99+
    2023-06-29
  • property如何在python中使用
    这篇文章给大家介绍property如何在python中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是property装饰器顾名思义,这是一个装饰器,起到一个辅助作用,具体理解请看下面一个例子。我们知道,程序中...
    99+
    2023-06-14
  • python中@Property属性使用方法
    目录一、前言二、创建用于计算的属性三、为属性添加安全保护机制一、前言 本文介绍的属性与类属性和实例属性不同。类属性和实例属性介绍的属性将返回所存储的值。而本文要介绍的属性是一种特殊的...
    99+
    2024-04-02
  • python中@Property属性如何使用
    这篇文章主要介绍“python中@Property属性如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中@Property属性如何使用”文章能帮助大家解决问题。一、前言本文介绍的属...
    99+
    2023-07-02
  • python装饰器property和setter怎么使用
    本篇内容介绍了“python装饰器property和setter怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.引子:函数也是对象...
    99+
    2023-07-02
  • Python的@property的使用
    目录1、几个概念2、举个例子3、解决问题4、换个方法通常,当我们需要对对象的敏感属性或者不希望外部直接访问的属性进行私有化,但是某些时候我们又需要对这些私有属性进行修改,该怎么处理呢...
    99+
    2024-04-02
  • property()函数如何在Python中使用
    这篇文章将为大家详细讲解有关 property()函数如何在Python中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释性、编译...
    99+
    2023-06-14
  • Python装饰器中@property使用详解
    目录最初的声明方式使用装饰器的声明方式使用装饰器的调用过程总结最初的声明方式 在没有@property修饰的情况下,需要分别声明get、set、delete函数,然后初始化prope...
    99+
    2024-04-02
  • Python中@property的作用是什么
    本篇文章给大家分享的是有关Python中@property的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、使用@property优点将类方法转换为类属性,可以用来...
    99+
    2023-06-15
  • Python中关于property使用的小技巧
    目录property属性具体实例property属性的有两种方式装饰器方式旧式类新式类类属性方式property对象与@property装饰器对比property对象类属性@prop...
    99+
    2024-04-02
  • python中property装饰器的使用方法
    这篇文章主要介绍python中property装饰器的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和...
    99+
    2023-06-15
  • 如何在Python中使用@property装饰器
    这期内容当中小编将会给大家带来有关如何在Python中使用@property装饰器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、property() 函数讲解了解 @property 装饰器之前,我们...
    99+
    2023-06-15
  • python中的@property是什么
    这篇文章主要讲解了“python中的@property是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中的@property是什么”吧! 说明内置的@propert...
    99+
    2023-06-20
  • python中@property和pro
    1、基本的@property使用,可以把函数当做属性用 class Person(object): @property def get_name(self): print('我叫xxx') def...
    99+
    2023-01-30
    python property pro
  • python property的使用技巧分享
    property属性 一种用起来像是使用实例属性一样的特殊属性,可以对应于某个方法 既要保护类的封装特性,又要让开发者可以使用 对象.属性 的方式操作方法,@property 装饰器,可以直接通过方法名来访问方...
    99+
    2022-06-02
    python property
  • python @property 装饰器使用方法
    目录一、property的装饰器用法二、举例说明1.不用setter和getter方法的实现2.使用setter和getter的实现,增加温度值输入的限制3.利用property装饰...
    99+
    2024-04-02
  • python中property函数的怎样是什么
    这篇文章将为大家详细讲解有关python中property函数的怎样是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python主要应用领域有哪些1、云计算,典型应用OpenStack。...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作