python之hasattr、getattr和setattr函数
2024-08-28 20:39:40
hasattr函数使用方法
# hasattr函数使用方法
# hasattr(object,attr)
# 判断一个对象里是否有某个属性或方法,返回布尔值,有为True,否则False
class person():
'''测试类'''
name = 'mike'
age = '' def say(self):
'''测试方法'''
return 'hello!' per = person()
has_name = hasattr(per, 'name')
has_sex = hasattr(per, 'sex')
has_say = hasattr(per, 'say')
print('1.是否有name属性:', has_name)
print('2.是否有sex属性:', has_sex)
print('3.是否有say方法:', has_say)
运行结果:
1.是否有name属性: True
2.是否有sex属性: False
3.是否有say方法: True
getattr函数使用方法
# getattr函数使用方法
# getattr(object,attr[,default])
# 获取对象的属性或方法,可设置输出默认值,
# 如果获取方法,返回的是内存地址,如果需要运行,后面添加一对括号
has_name = getattr(per, 'name')
has_sex = getattr(per, 'sex', 'male')
has_say = getattr(per, 'say')()
print('1.name属性:', has_name)
print('2.sex属性不存在,返回默认值:', has_sex)
print('3.say方法执行结果:', has_say)
运行结果:
1.name属性: mike
2.sex属性不存在,返回默认值: male
3.say方法执行结果: hello!
setattr函数使用方法
# setattr函数使用方法
# setattr(object,attr,values)
# 给对象的属性赋值,若属性不存在,则先创建再赋值
setattr(per, 'name', 'Tom')
print('1.修改name属性:', per.name)
setattr(per, 'id', '')
print('2.创建id属性:', per.id)
运行结果:
1.修改name属性: Tom
2.穿件sex属性: 6557
最新文章
- cookie的作用
- 用非管理员权限启动主程序,并用管理员权限启动子程序,导致WM_COPYDATA消息发送失败的问题
- DevExpress DXperience 的ASPxFilterControl 不显示 Like 菜单的方法
- Java基础之序列化对象——反序列化对象(DeserializeObjects)
- 在c#中使用mongo-csharp-driver操作mongodb
- Request/Server的相关topic
- [转]Activemq管理和基本介绍
- RSA加密解密(PHP Demo)
- 文件上传<;springmvc>;
- Unity 多屏(分屏)显示,Muti_Display
- Java开发相关命名规范
- 如何使用JavaScript实现纯前端读取和导出excel文件
- jira8.0.2安装与破解
- update linux dns,no need restart
- ES6,Array.copyWithin()函数的用法
- undefined reference to...
- 20161210xlVBA一行数据转为四行
- PHP变量的传值和引用
- vue项目引入社交分享插件
- 当点击onBackpress方法或者onKeyDown方法时出现不能响应的问题解决办法
热门文章
- Python脱产8期 Day02
- C++的 new 和 detele
- Android学习之基础知识四-Activity活动6讲(体验Activity的生命周期)
- android精品开源项目整理
- 由javascript的闭包引申到程序语言编译上的自由变量作用域的考量
- NPOI DataTable导出excel
- 【LeetCode106】Construct Binary Tree from Inorder and Postorder Traversal★★
- [Python]Python Class 中的 函数定义中的 self
- Scala学习(七)---包和引入
- Mvc4_ @RenderBody、@RenderPage、@RenderSection用法