博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之hasattr、getattr和setattr函数
阅读量:4680 次
发布时间:2019-06-09

本文共 1217 字,大约阅读时间需要 4 分钟。

hasattr函数使用方法
1 # hasattr函数使用方法 2 # hasattr(object,attr) 3 # 判断一个对象里是否有某个属性或方法,返回布尔值,有为True,否则False 4 class person(): 5     '''测试类''' 6     name = 'mike' 7     age = '25' 8  9     def say(self):10         '''测试方法'''11         return 'hello!'12 13 14 per = person()15 has_name = hasattr(per, 'name')16 has_sex = hasattr(per, 'sex')17 has_say = hasattr(per, 'say')18 print('1.是否有name属性:', has_name)19 print('2.是否有sex属性:', has_sex)20 print('3.是否有say方法:', has_say)

运行结果:

1.是否有name属性: True2.是否有sex属性: False3.是否有say方法: True

  

getattr函数使用方法
1 # getattr函数使用方法 2 # getattr(object,attr[,default]) 3 # 获取对象的属性或方法,可设置输出默认值, 4 # 如果获取方法,返回的是内存地址,如果需要运行,后面添加一对括号 5 has_name = getattr(per, 'name') 6 has_sex = getattr(per, 'sex', 'male') 7 has_say = getattr(per, 'say')() 8 print('1.name属性:', has_name) 9 print('2.sex属性不存在,返回默认值:', has_sex)10 print('3.say方法执行结果:', has_say)

运行结果:

1.name属性: mike2.sex属性不存在,返回默认值: male3.say方法执行结果: hello!

 

setattr函数使用方法
1 # setattr函数使用方法2 # setattr(object,attr,values)3 # 给对象的属性赋值,若属性不存在,则先创建再赋值4 setattr(per, 'name', 'Tom')5 print('1.修改name属性:', per.name)6 setattr(per, 'id', '6557')7 print('2.创建id属性:', per.id)

运行结果:

1.修改name属性: Tom2.穿件sex属性: 6557

  

 

转载于:https://www.cnblogs.com/gongxr/p/7529956.html

你可能感兴趣的文章
对未来的思考(一)
查看>>
linux中awk的使用
查看>>
基于 Struts2 的文件下载
查看>>
我的人生导师
查看>>
Ubuntu 18.04 安卓调试小米
查看>>
<泛> STL - vector 模拟实现
查看>>
[Error]configure: error: Package requirements (fuse >= 2.3 glib-2.0 gthread-2.0) were not met:
查看>>
MyBatis学习总结_06_调用存储过程
查看>>
java课程课后作业190425之一维数组最大子数组—功能扩展(界面实现)
查看>>
Android开发:Eclipse+OpenCV环境搭建
查看>>
netlink--内核态与用户态通信
查看>>
shell Usage
查看>>
linux/windows 安装MySQLdb模块
查看>>
规划网站
查看>>
面向对象(基础oop)之属性与构造函数
查看>>
Linux网络栈协议无关层--BSD socket
查看>>
Java-ServletFilter(过滤器)实例及详解
查看>>
Checking Whether Items Have Changed
查看>>
FZU 2202——犯罪嫌疑人——————【思维题】
查看>>
SEO知识图一
查看>>