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在指定目录下查找gif文件的方法
May 04 Python
python批量制作雷达图的实现方法
Jul 26 Python
Python编程实现蚁群算法详解
Nov 13 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
Python threading.local代码实例及原理解析
Mar 16 Python
Python使用monkey.patch_all()解决协程阻塞问题
Apr 15 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
Python如何识别银行卡卡号?
Jun 10 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学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
PHP中的use关键字概述
2014/07/23 PHP
php数据访问之查询关键字
2016/05/09 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
javascript数据类型详解
2017/02/07 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
Python中的并发编程实例
2014/07/07 Python
python交互式图形编程实例(一)
2017/11/17 Python
python实现教务管理系统
2018/03/12 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Django实现表单验证
2018/09/08 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
python面向对象 反射原理解析
2019/08/12 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
J2EE模式面试题
2016/10/11 面试题
监理资料员岗位职责
2014/01/03 职场文书
邀请函怎么写
2015/01/30 职场文书
小学生安全保证书
2015/05/09 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书