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模块之re正则表达式详解
Feb 03 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 Python
Python全排列操作实例分析
Jul 24 Python
解决python "No module named pip" 的问题
Oct 13 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
Pandas-DataFrame知识点汇总
Mar 16 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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去除数组中重复数据
2014/11/18 PHP
新手入门常用代码集锦
2007/01/11 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
详解django三种文件下载方式
2018/04/06 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
详解python数据结构和算法
2019/04/18 Python
python实现淘宝购物系统
2019/10/25 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
班组长安全职责
2014/01/05 职场文书
给客户的道歉信
2014/01/13 职场文书
网络宣传方案
2014/03/15 职场文书
分公司经理任命书
2014/06/05 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
MYSQL如何查看操作日志详解
2022/05/30 MySQL
python如何查找列表中元素的位置
2022/05/30 Python