详解Python的hasattr() getattr() setattr() 函数使用方法


Posted in Python onJuly 09, 2018

hasattr(object, name)

判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。

需要注意的是name要用括号括起来

>>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> hasattr(t, "name") #判断对象有name属性
 True
 >>> hasattr(t, "run") #判断对象有run方法
 True
 >>>

getattr(object, name[,default])

获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。

需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,可以在后面添加一对括号。

>>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "name") #获取name属性,存在就打印出来。
 'xiaohua'
 >>> getattr(t, "run") #获取run方法,存在就打印出方法的内存地址。
 <bound method test.run of <__main__.test instance at 0x0269C878>>
 >>> getattr(t, "run")() #获取run方法,后面加括号可以将这个方法运行。
 'HelloWord'
>>> getattr(t, "age") #获取一个不存在的属性。
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age","18") #若属性不存在,返回一个默认值。
 '18'
 >>>

setattr(object, name, values)

给对象的属性赋值,若属性不存在,先创建再赋值。

>>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> hasattr(t, "age")  #判断属性是否存在
 False
 >>> setattr(t, "age", "18")  #为属相赋值,并没有返回值
 >>> hasattr(t, "age")  #属性存在了
 True
 >>>

一种综合的用法是:判断一个对象的属性是否存在,若不存在就添加该属性。

>>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "age")  #age属性不存在
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age", setattr(t, "age", "18")) #age属性不存在时,设置该属性
 '18'
 >>> getattr(t, "age") #可检测设置成功
 '18'
 >>>

总结

以上所述是小编给大家介绍的Python的hasattr() getattr() setattr() 函数使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
python并发编程之线程实例解析
Dec 27 Python
python数据封装json格式数据
Mar 04 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
PyTorch基本数据类型(一)
May 22 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
python元组打包和解包过程详解
Aug 02 Python
详解PyTorch模型保存与加载
Apr 28 Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 #Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 #Python
利用Python如何生成便签图片详解
Jul 09 #Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 #Python
使用Python更换外网IP的方法
Jul 09 #Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 #Python
Python迭代器与生成器用法实例分析
Jul 09 #Python
You might like
PHP:风雨欲来 路在何方?
2006/10/09 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
jQuery DOM操作小结与实例
2010/01/07 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
pandas删除指定行详解
2019/04/04 Python
python制作抖音代码舞
2019/04/07 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
Python函数中apply、map、applymap的区别
2021/11/27 Python
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js