python3.6中@property装饰器的使用方法示例


Posted in Python onAugust 17, 2019

本文实例讲述了python3.6中@property装饰器的使用方法。分享给大家供大家参考,具体如下:

1、@property装饰器的使用场景简单记录如下:

  • 负责把一个方法变成属性调用;
  • 可以把一个getter方法变成属性,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值;
  • 只定义getter方法,不定义setter方法就是一个只读属性

2、通过一个例子来加深对@property装饰器的理解:利用@property给一个Screen对象加上width和height属性,以及一个只读属性resolution。

代码实现如下:

class Screen(object):
 @property
 def width(self):
 return self._width
 @width.setter
 def width(self,value):
 self._width = value
 @property
 def height(self):
 return self._height
 @height.setter
 def height(self,values):
 self._height = values
 @property
 def resolution(self):
 return self._width * self._height
s = Screen()
s.width = 1024
s.height = 768
print('resolution = ',s.resolution)

运行结果:

resolution =  786432

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现监控程序执行时间并将其写入日志的方法
Jun 30 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
Python对象属性自动更新操作示例
Jun 15 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
一看就懂得Python的math模块
Oct 21 Python
Python OS模块实例详解
Apr 15 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Python变量访问权限控制详解
Jun 29 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
python 装饰器重要在哪
Feb 14 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 Python
对django的User模型和四种扩展/重写方法小结
Aug 17 #Python
python3.6编写的单元测试示例
Aug 17 #Python
python3 实现的对象与json相互转换操作示例
Aug 17 #Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 #Python
django 通过url实现简单的权限控制的例子
Aug 16 #Python
对Django中内置的User模型实例详解
Aug 16 #Python
对Django中的权限和分组管理实例讲解
Aug 16 #Python
You might like
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
php 什么是PEAR?(第二篇)
2009/03/19 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
python实现批量解析邮件并下载附件
2018/06/19 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
python创建学生成绩管理系统
2019/11/22 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
2015年医德考评自我评价
2015/03/03 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers