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创建和使用字典实例详解
Nov 01 Python
Swift 3.0在集合类数据结构上的一些新变化总结
Jul 11 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
Django 连接sql server数据库的方法
Jun 30 Python
python实现公司年会抽奖程序
Jan 22 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
python实现定时发送邮件
Dec 23 Python
OpenCV-Python直方图均衡化实现图像去雾
Jun 07 Python
用Python可视化新冠疫情数据
Jan 18 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使用CURL伪造IP和来源实例详解
2015/01/15 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python探索之自定义实现线程池
2017/10/27 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
Pygame的程序开始示例代码
2020/05/07 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
一些网络技术方面的面试题
2014/05/01 面试题
最新销售员个人自荐信
2013/09/21 职场文书
建筑文秘专业个人求职信范文
2013/12/28 职场文书
应届实习生的自我评价范文
2014/01/05 职场文书
运动会班级口号
2014/06/09 职场文书
房屋出租委托书格式
2014/09/23 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle