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中使用Neo4j数据库的教程
Apr 16 Python
在Python中使用SQLite的简单教程
Apr 29 Python
Python3实现从指定路径查找文件的方法
May 22 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
python实现按日期归档文件
Jan 30 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
python通过函数名调用函数的几种方法总结
Jun 07 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
Nov 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
香妃
2021/03/03 冲泡冲煮
php的access操作类
2008/04/09 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
告诉大家什么是JSON
2008/06/10 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python操作xml文件详细介绍
2014/06/09 Python
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python csv模块使用方法代码实例
2019/08/29 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
Java基础面试题
2012/11/02 面试题
仓库组长岗位职责
2014/01/29 职场文书
安全保证书范文
2014/04/29 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
出生证明格式
2015/06/15 职场文书