详解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 相关文章推荐
Python 第一步 hello world
Sep 25 Python
python文件比较示例分享
Jan 10 Python
wxPython事件驱动实例详解
Sep 28 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
python中文编码与json中文输出问题详解
Aug 24 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
使用Python防止SQL注入攻击的实现示例
May 21 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实现mysql数据库备份类
2008/03/20 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
Vue的Options用法说明
2020/08/14 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
小小聊天室Python代码实现
2016/08/17 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
详解python中的lambda与sorted函数
2020/09/04 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
大学生应聘自荐信
2013/10/11 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
迟到检讨书1000字
2014/01/15 职场文书
创业计划书如何编写
2014/02/06 职场文书
先进单位事迹材料
2014/12/25 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
python 批量压缩图片的脚本
2021/06/02 Python