python中property属性的介绍及其应用详解


Posted in Python onAugust 29, 2019

Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回。
使用property修饰的实例方法被调用时,可以把它当做实例属性一样

property的用法1——装饰器方式

在类的实例方法上应用@property装饰器

class Test:
  def __init__(self):
    self.__num = 100
  @property
  def num(self):
    print("--get--")
    return self.__num
  @num.setter
  def num(self, num):
    print("--set--")
    self.__num = num
t = Test()
print(t.num)
t.num = 1
"""
--get--
100
--set--
"""

property属性的定义和调用要注意一下几点:

  • 定义时,在实例方法的基础上添加 @property 装饰器;并且仅有一个self参数。
  • 调用时,无需括号。
  • 经典类中的属性只有一种访问方式,其对应被 @property 修饰的方法。
  • 新式类中的属性有三种访问方式,并分别对应了三个被@property、@方法名.setter、@方法名.deleter修饰的方法。
  • Python中的类有经典类和新式类,新式类的属性比经典类的属性丰富。( 如果类继object,那么该类是新式类 ),python3中的类都是新式类。

property的用法2——类属性方式

当使用类属性的方式创建property属性时,经典类和新式类无区别

class Test:
  def __init__(self):
    self.__num = 100
  def setNum(self, num):
    print("--set--")
    self.__num = num
  def getNum(self):
    print("--get--")
    return self.__num
  # 注意:要先写get方法,再写set方法
  aa = property(getNum, setNum)
t = Test()
print(t.aa)
t.aa = 1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的下载8000首儿歌的代码分享
Nov 21 Python
Python中集合类型(set)学习小结
Jan 28 Python
Python常用的爬虫技巧总结
Mar 28 Python
python中 logging的使用详解
Oct 25 Python
vscode 远程调试python的方法
Dec 01 Python
python 显示数组全部元素的方法
Apr 19 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
python使用rpc框架gRPC的方法
Aug 24 Python
python SVM 线性分类模型的实现
Jul 19 Python
python正则-re的用法详解
Jul 28 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
django-rest-swagger的优化使用方法
Aug 29 #Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 #Python
python实现最大优先队列
Aug 29 #Python
django连接oracle时setting 配置方法
Aug 29 #Python
python线程的几种创建方式详解
Aug 29 #Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 #Python
python多线程分块读取文件
Aug 29 #Python
You might like
PHP安全配置
2006/12/06 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
js 利用className得到对象的实现代码
2011/11/15 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
python实现单向链表详解
2018/02/08 Python
Python数据结构之图的应用示例
2018/05/11 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
python 实现单通道转3通道
2019/12/03 Python
Python list运算操作代码实例解析
2020/01/20 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
python中pow函数用法及功能说明
2020/12/04 Python
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
开学典礼主持词
2014/03/19 职场文书
教师节活动主持词
2014/04/02 职场文书
社区矫正工作方案
2014/06/04 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL