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远程登录代码
Apr 29 Python
python实现数通设备tftp备份配置文件示例
Apr 02 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
python抓取最新博客内容并生成Rss
May 17 Python
详解Python中dict与set的使用
Aug 10 Python
详解python的webrtc库实现语音端点检测
May 31 Python
简单实现python进度条脚本
Dec 18 Python
python距离测量的方法
Mar 06 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
pytorch实现线性回归以及多元回归
Apr 11 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
详解Django的CSRF认证实现
2018/10/09 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
Python实战之制作天气查询软件
2019/05/14 Python
python的常见矩阵运算(小结)
2019/08/07 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
解决python运行效率不高的问题
2020/07/20 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
女方回门宴答谢词
2014/01/14 职场文书
班组长竞聘书
2014/03/31 职场文书
毕业论文评语大全
2014/04/29 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
公司投资建议书
2014/05/16 职场文书
正科级干部考察材料
2014/05/29 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
中学语文教学反思
2016/02/16 职场文书