详解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的发展史
Sep 26 Python
python生成随机mac地址的方法
Mar 16 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
python模拟事件触发机制详解
Jan 19 Python
基于Python的PIL库学习详解
May 10 Python
Django CBV类的用法详解
Jul 26 Python
python 字典套字典或列表的示例
Dec 16 Python
TensorFlow实现自定义Op方式
Feb 04 Python
使用sklearn的cross_val_score进行交叉验证实例
Feb 28 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
python获取淘宝服务器时间的代码示例
Apr 22 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原理之异常机制深入分析
2010/08/08 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
Python中元组,列表,字典的区别
2017/05/21 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
关于运动会的广播稿
2014/09/22 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
Python 绘制多因子柱状图
2022/05/11 Python