property 的详细使用方法
property(fget=None, fset=None, fdel=None, doc=None)
俗话说条条大路通罗马,同样是完成一件事,Python 其实提供了好几个方式供你选择。
property() 是一个比较奇葩的BIF,它的作用把方法当作属性来访问,从而提供更加友好访问方式。
官方帮助文档代码:
- class C:
- def __init__(self):
- self._x = None
- def getx(self):
- return self._x
- def setx(self, value):
- self._x = value
- def delx(self):
- del self._x
- x = property(getx, setx, delx, "I'm the 'x' property.")
复制代码
property() 返回一个可以设置属性的属性,当然如何设置属性还是需要我们人为来写代码。第一个参数是获得属性的方法名(例子中是 getx),第二个参数是设置属性的方法名(例子中是 setx),第三个参数是删除属性的方法名(例子中是 delx)。
property() 有什么作用呢?举个例子,在上边的例题中,我们为用户提供 setx 方法名来设置 _x 属性,提供 getx 方法名来获取属性。但是有一天你心血来潮,突然想对程序进行大改,可能你需要把 setx 和 getx 修改为 set_x 和 get_x,那你不得不修改用户调用的接口,这样子的体验就非常不好。
有了 property() 所有问题就迎刃而解了,因为像上边一样,我们为用户访问 _x 属性只提供了 x 属性。无论我们内部怎么改动,只需要相应的修改 property() 的参数,用户仍然只需要去操作 x 属性即可,对他们来说没有任何影响。
使用属性修饰符创建描述符
使用属性修饰符创建描述符,也可以实现同样的功能(【扩展阅读】Python 函数修饰符(装饰器)的使用):
官方帮助文档代码:
- class C:
- def __init__(self):
- self._x = None
- @property
- def x(self):
- """I'm the 'x' property."""
- return self._x
- @x.setter
- def x(self, value):
- self._x = value
- @x.deleter
- def x(self):
- del self._x
复制代码
注意:三个处理 _x 属性的方法名要相同(参数不同)。
转载于:https://www.cnblogs.com/fclbky/p/4098191.html
property 的详细使用方法相关推荐
- Python零基础速成班-第10讲-Python面向对象编程(下),Property属性、特殊方法、设计模式、链表应用
Python零基础速成班-第10讲-Python面向对象编程(下),Property属性.特殊方法.设计模式.链表应用 学习目标 面向对象编程 接上一讲:Property属性.特殊方法.设计模式 面向 ...
- uiautomator2详细使用方法
uiautomator2详细使用方法 1.简介 2.工作原理 3.安装与启动 3.1 安装uiautomator2 3.2 安装weditor 4. 元素定位 4.1 使用方法 4.2 支持的定位方式 ...
- pythongui界面实例带注释_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...
PyQt5状态栏控件QStatusBar简介 MainWindow对象在底部保留有一个水平条,作为状态栏(QstatusBar),用于显示永久或临时的状态信息 QStatusBar类中的常用方法 方法 ...
- python表格控件_python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例...
PyQt5表格控件QTableView简介 在通常情况下,一个应用需要和一批数据进行交互,然后以表格的形式输出这些信息,这时就需要用到QTableView类了,在QTableView中可以使用自定义的 ...
- python日历gui_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
PyQt5日期时间控件QDateTimeEdit介绍 QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过s ...
- linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面
CentOS下离线安装gcc环境,图文详细,方法全面 下载 方式1:如果有网的虚拟机还没有安装,可以直接 yum install --downloadonly --downloaddir=/root/ ...
- [转]NUnit详细使用方法
本文转自:http://www.cnblogs.com/confach/archive/2005/06/20/177817.html 原文如下: ---------- NUnit2.0详细使用方法 注 ...
- qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...
QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类. 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和 ...
- python中property方法有用_python中@property和property函数常见使用方法示例
本文实例讲述了python中@property和property函数常见使用方法.分享给大家供大家参考,具体如下: 1.基本的@property使用,可以把函数当做属性用 class Person(o ...
- tortoise清理本地分支_TortoiseGit操作本地仓库的详细使用方法
TortoiseGit 操作本地仓库的详细使用方法 Git 的使用越来越广泛, 不过默认使用命令行进行操作, 这就对那些习惯使用图形化界面的人造成了一定的困难, TortoiseGit 是 Git 在 ...
最新文章
- spring 全局变量_精华:关于Spring的15点总结
- 微博 Android 启动广告,使用Xposed去除微博国际版的启动广告
- 一、AJAX学习笔记——原生AJAX (ajax简介、XML简介、ajax优缺点、ajax的使用)
- eclipse类文件无法找到_「Revit技巧」新建项目和族时无法找到样板文件(丢失)?...
- vue表单中批量导入功能_vue实战(11)——vue+element UI实现表格数据导出Excel功能
- 含绝对值不等式的证明
- Eclipse中和编辑相关的快捷键
- 众信金融获“2015最佳绿色贡献奖”
- PLC Outstudio 使用教程
- 爬虫 京东登录协议分析
- 百旺如何看是否清卡_百旺税控怎么看反写成功
- 中国裁判文书网接口解密
- php 打印去掉页眉页脚,window.print打印 去掉页眉页脚及打印链接
- X86 MOVSB MOVSW MOVSD MOVSQ 指令详解
- JAVA Reflect反射详解
- 阿里云物联网配置网络流程
- 一位资深开发的个人经历 【转自百度贴吧 java吧 原标题 4年java 3年产品 现在又开始做android了】...
- 如何搭建一个站内搜索引擎(一) 第1章 写在最前
- SQL service基础(九)用户定义数据类型和用户定义函数的概念、创建及使用方法
- STUN, TURN, ICE介绍
热门文章
- SAP 采购订单入库——库存查询
- qlv视频怎么转换成mp4格式工厂?如何用格式工厂将qlv格式转换成mp4格式?
- 第五章---面向对象---小练习
- AutoCAD快速入门(二十九):视口
- 怎么有效提高淘宝店铺的转化率方法步骤
- Linux/Unix如何将日志发送到日志服务器
- c语言硬币个数最小值,c语言 PTA day4 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?...
- 雅虎邮箱pop服务器,使用Yahoo.com.cn的POP和SMTP
- 淘宝二面:说下二维码登录的原理?我懵了。。。
- 车牌识别系统 HY-LPR2