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教程之全局变量用法
Jun 27 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
python中requests和https使用简单示例
Jan 18 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
python实现超市商品销售管理系统
Nov 22 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
Django多个app urls配置代码实例
Nov 26 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
Dec 01 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 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中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
js类型检查实现代码
2010/10/29 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
复制粘贴功能的Python程序
2008/04/04 Python
python中解析json格式文件的方法示例
2017/05/03 Python
python实现k-means聚类算法
2018/02/23 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
最新的咖啡店创业计划书
2013/12/30 职场文书
捐书寄语赠言
2014/01/18 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
工作目标责任书
2014/07/23 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
实习生工作证明范本
2014/09/14 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
民主评议党员总结
2014/10/20 职场文书
太行山上观后感
2015/06/05 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
java开发双人五子棋游戏
2022/05/06 Java/Android