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 相关文章推荐
py2exe 编译ico图标的代码
Mar 08 Python
python逐行读取文件内容的三种方法
Jan 20 Python
python各种语言间时间的转化实现代码
Mar 23 Python
Python 登录网站详解及实例
Apr 11 Python
python去除扩展名的实例讲解
Apr 23 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
Python的缺点和劣势分析
Nov 19 Python
python实现图像拼接
Mar 05 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
python实现双人五子棋(终端版)
Dec 30 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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
在PWS上安装PHP4.0正式版
2006/10/09 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
python回调函数的使用方法
2014/01/23 Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
Python装饰器原理与用法分析
2018/04/30 Python
使用python进行拆分大文件的方法
2018/12/10 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python通过实例讲解反射机制
2019/10/17 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
python删除某个目录文件夹的方法
2020/05/26 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
便利店投资的创业计划书
2014/01/12 职场文书
单位领导证婚词
2014/01/14 职场文书
学期自我评价
2014/01/27 职场文书
决心书标准格式
2014/03/11 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
2014年项目工作总结
2014/11/24 职场文书
爱情保证书
2015/01/17 职场文书
宿舍卫生管理制度
2015/08/05 职场文书