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 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
Mar 13 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
python  Django中的apps.py的目的是什么
Oct 15 Python
对python中的 os.mkdir和os.mkdirs详解
Oct 16 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
python3实现高效的端口扫描
Aug 31 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
jquery判断浏览器类型的代码
2012/11/05 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
Python命名空间详解
2014/08/18 Python
跟老齐学Python之重回函数
2014/10/10 Python
python模块之StringIO使用示例
2015/04/08 Python
python实现的简单抽奖系统实例
2015/05/22 Python
Python装饰器用法实例总结
2018/05/26 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
python导入pandas具体步骤方法
2019/06/23 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
公司财务流程之主管工作流程
2014/03/03 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
保卫工作个人总结
2015/03/03 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
详解CSS3浏览器兼容
2022/12/24 HTML / CSS