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 相关文章推荐
java直接调用python脚本的例子
Feb 16 Python
win10系统中安装scrapy-1.1
Jul 03 Python
python递归打印某个目录的内容(实例讲解)
Aug 30 Python
Python从零开始创建区块链
Mar 06 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
详解python做UI界面的方法
Feb 27 Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
详解scrapy内置中间件的顺序
Sep 28 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添加MySQL数据记录代码
2008/06/07 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
php解析xml方法实例详解
2015/05/12 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
python的re正则表达式实例代码
2018/01/24 Python
python实现AES加密与解密
2019/03/28 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
用python制作个音乐下载器
2021/01/30 Python
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
毕业生自我鉴定
2013/11/05 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技