Python @property装饰器原理解析

 更新时间:2020年01月22日 09:05:38   作者:xiaobaizzZ  
这篇文章主要介绍了Python @property装饰器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Python @property装饰器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.通过@property装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。

class Person:
  def __init__(self, name):
    self.__name = name
  @property
  def say(self):
    return self.__name
xioabai = Person("xiaobai")
#直接通过方法名来访问say方法
print("我的名字是:", xiaobai.say)
我的名字是: xiaobai

上面程序中,使用@property修饰了say()方法,这就使得该方法变成了name属性的getter方法。

2.使用setter装饰器,可以为say方法添加setter方法。

class Person:
  def __init__(self, name):
    self.__name = name
  @property
  def say(self):
    return self.__name
  @say.setter
  def say(self, value):
    self.__name = value
xiaobai = Person("xiaobai")
xiaobai.say = "xiaohei"
print("我的名字其实是:", xiaobai.say)
我的名字其实是: xiaohei

3.使用deleter装饰器来删除指定属性,可以为say方法添加deleter方法

class Person:
  def __init__(self, name):
    self.__name = name
  @property
  def say(self):
    return self.__name
  @say.setter
  def say(self, value):
    self.__name = value
  @say.deleter
  def say(self):
    self.__name = "xxx"
xiaobai = Person("xiaobai")
del xiaobai.say
print("我的名字其实是:", xiaobai.say)
我的名字其实是: xxx

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python中upper是做什么用的

    python中upper是做什么用的

    在本篇文章里小编给大家整理的是一篇关于python中upper的作用的相关文章,有需要的朋友们可以参考下。
    2020-07-07
  • Django项目实战之配置文件详解

    Django项目实战之配置文件详解

    这篇文章主要给大家介绍了关于Django项目实战之配置文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • pyqt4教程之messagebox使用示例分享

    pyqt4教程之messagebox使用示例分享

    这篇文章主要介绍了pyqt4的messagebox使用示例,需要的朋友可以参考下
    2014-03-03
  • python 生成任意形状的凸包图代码

    python 生成任意形状的凸包图代码

    这篇文章主要介绍了python 生成任意形状的凸包图代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python中global与nonlocal比较

    python中global与nonlocal比较

    这篇文章主要介绍了python中global与nonlocal比较,global关键字用来在函数或其他局部作用域中使用全局变量,nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量,需要的朋友可以参考下
    2014-11-11
  • 如何用C代码给Python写扩展库(Cython)

    如何用C代码给Python写扩展库(Cython)

    这篇文章主要介绍了如何用C代码给Python写扩展库(Cython),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Python实现去除列表中重复元素的方法总结【7种方法】

    Python实现去除列表中重复元素的方法总结【7种方法】

    今天小编就为大家分享一篇关于Python实现去除列表中重复元素的方法总结【7种方法】,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Python Transformers库(NLP处理库)案例代码讲解

    Python Transformers库(NLP处理库)案例代码讲解

    本文介绍transformers 库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对Python Transformers库相关知识感兴趣的朋友一起看看吧
    2025-04-04
  • python中dropna()函数的作用举例说明

    python中dropna()函数的作用举例说明

    这篇文章主要给大家介绍了关于python中dropna()函数的相关资料,dropna()是pandas库中的一个函数,用于删除DataFrame中的缺失值,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Python中使用gzip模块压缩文件的简单教程

    Python中使用gzip模块压缩文件的简单教程

    这篇文章主要介绍了Python中使用gzip模块压缩文件的简单教程,本文的例子主要针对类UNIXZ系统,需要的朋友可以参考下
    2015-04-04

最新评论