码迷,mamicode.com
首页 > 编程语言 > 详细

python之hasattr、getattr和setattr函数

时间:2017-09-16 11:38:25      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:运行   class   结果   col   getattr   内存   使用   对象   efault   

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属性: True
2.是否有sex属性: False
3.是否有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属性: mike
2.sex属性不存在,返回默认值: male
3.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属性: Tom
2.穿件sex属性: 6557

  

 

python之hasattr、getattr和setattr函数

标签:运行   class   结果   col   getattr   内存   使用   对象   efault   

原文地址:http://www.cnblogs.com/gongxr/p/7529956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!