Python @property装饰器原理解析


Posted in Python onJanuary 22, 2020

这篇文章主要介绍了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 相关文章推荐
python求斐波那契数列示例分享
Feb 14 Python
Python检测QQ在线状态的方法
May 09 Python
Python内置函数reversed()用法分析
Mar 20 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
python 实现A*算法的示例代码
Aug 13 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
Python random模块的使用示例
Oct 10 Python
Python离线安装各种库及pip的方法
Nov 28 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 Python
Python底层封装实现方法详解
Jan 22 #Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 #Python
使用tensorboard可视化loss和acc的实例
Jan 21 #Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 #Python
NumPy统计函数的实现方法
Jan 21 #Python
TensorFlow实现打印每一层的输出
Jan 21 #Python
NumPy排序的实现
Jan 21 #Python
You might like
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
javascript轮播图算法
2016/10/21 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
Python中的heapq模块源码详析
2019/01/08 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
导师就业推荐信范文
2014/05/22 职场文书
求职信内容怎么写
2014/05/26 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
先进单位事迹材料
2014/12/25 职场文书
车队安全员岗位职责
2015/02/15 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python