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与Redis的连接教程
Apr 22 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
Python中的getopt函数使用详解
Jul 28 Python
解决Django模板无法使用perms变量问题的方法
Sep 10 Python
详解appium+python 启动一个app步骤
Dec 20 Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
python实现画出e指数函数的图像
Nov 21 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
python rsa-oaep加密的示例代码
Sep 23 Python
Django框架实现在线考试系统的示例代码
Nov 30 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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 禁止页面缓存输出
2009/01/07 PHP
php 字符串函数收集
2010/03/29 PHP
php上传文件常见问题总结
2015/02/03 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PHP 无限级分类
2017/05/04 PHP
js确定对象类型方法
2012/03/30 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python中字典和集合学习小结
2017/07/07 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
使用python进行拆分大文件的方法
2018/12/10 Python
python字典一键多值实例代码分享
2019/06/14 Python
python正则-re的用法详解
2019/07/28 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
书法比赛获奖感言
2014/02/10 职场文书
2014年母亲节寄语
2014/05/07 职场文书
企业年检委托书范本
2014/10/14 职场文书
关于运动会的广播稿
2015/08/19 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL