Python内置函数property()如何使用


Posted in Python onSeptember 01, 2020

代码

class Shuxing():
  def __init__(self, size = 10):
    self.size = size
  def getSize(self):
    print('getSize')
    return self.size
  def setSize(self, value):
    print('setSize')
    self.size = value
  def delSize(self):
    print('delSize')
    del self.size
  x = property(getSize, setSize, delSize)

sx=Shuxing(100)
print('1',sx.x)  #获取x,执行getSize方法
sx.x=1000   #设置x,执行setSize方法
print('2',sx.x)   #获取x,执行getSize方法
del sx.x  # 删除x,执行delSize方法

print('3',sx.size)   # 获取x,执行getSize方法,但是此时size已被删除,所以会报错 

结果

getSize
1 100
Traceback (most recent call last):
setSize
getSize
File "D:/PycharmProjects/flask_demo/a.py", line 21, in <module>
2 1000
delSize
print('3',sx.size)
AttributeError: 'Shuxing' object has no attribute 'size'

Process finished with exit code 1

property()函数中的三个函数分别对应的是获取属性的方法、设置属性的方法以及删除属性的方法,这样一来,外部的对象就可以通过访问x的方式,来达到获取、设置或删除属性的目的。

当需要更改上例中的getSize、setSize或delSize函数的名称时,如果这些方法是作为接口让用户调用的,那么对用户而言就要修改自己调用的方法名,很麻烦,使用了proprty()后,用户就不需担心这种问题了。

更多关于属性的内置方法有:

  • hasattr():判断对象中是否有指定名称的属性,第一个参数是对象,第二个参数是字符串(属性名称);
  • getattr():获取对象中指定的属性的值,如果属性不存在,返回指定的提示字符串,第一个参数是对象,第二参数是字符串(属性名称),第三个参数是字符串(访问的属性不存在时的提示);
  • setattr():设置对象中指定的属性的值,如果属性不存在,就自动为对象添加该属性并赋值,第一个参数是对象,第二个参数字符串(属性名称),第三个参数是需要设置的属性对应的值;
  • delattr():删除对象中指定的属性,第一个参数是对象,第二个参数需要删除的指定属性的名称。

以上就是Python内置函数property()如何使用的详细内容,更多关于Python内置函数property()的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
深入解析Python中的WSGI接口
May 11 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
Python队列的定义与使用方法示例
Jun 24 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
python列表推导式入门学习解析
Dec 02 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
Pygame Event事件模块的详细示例
Nov 17 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 #Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 #Python
解决python便携版无法直接运行py文件的问题
Sep 01 #Python
django有哪些好处和优点
Sep 01 #Python
python实现简单的五子棋游戏
Sep 01 #Python
Pycharm连接gitlab实现过程图解
Sep 01 #Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 #Python
You might like
php学习之变量的使用
2011/05/29 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
Python实现代码块儿折叠
2020/04/15 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
超市总经理岗位职责
2014/02/02 职场文书
给孩子的新年寄语
2014/04/08 职场文书
小学生植树节活动总结
2014/07/04 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
面试复试通知单
2015/04/24 职场文书
Python中的程序流程控制语句
2022/02/24 Python