详解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实现多线程的两种方式
May 22 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
Jun 27 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
QML使用Python的函数过程解析
Sep 26 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
Python如何根据时间序列数据作图
May 12 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php实现微信公众号无限群发
2015/10/11 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
Python的标准模块包json详解
2017/03/13 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
浅谈python写入大量文件的问题
2018/11/09 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
python实现tail -f 功能
2020/01/17 Python
Python之变量类型和if判断方式
2020/05/05 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
酒店总经理欢迎词
2014/01/08 职场文书
高中政治教学反思
2014/01/18 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
《山中访友》教学反思
2016/02/24 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript