getattr、setattr、hasattr

写一个演示类

class test():
    title="验证getattr、setattr、hasattr方法"
    def run(self):
        return "run方法的输出"

t=test()

getattr获取类里面属性、方法:getattr(object, name[,default])

print('获取对象属性的验证:',getattr(t,'title','需要的属性不存在(默认值)'))
'''
1.存在时:输出属性对应的value值
2.不存时:输出默认值(如果没有设置默认值会报错)

'''
print('获取对象属性:',getattr(t,'run')) #输出的是内存地址
'''
获取对象属性: <bound method test.run of <__main__.test object at 0x03BF64F0>>
'''
print('获取对象属性:',getattr(t,'run')()) #输出的是方法体的输出结果
'''
获取对象属性: run方法的输出
'''

setattr添加属性和修改属性:setattr(object, name,values)

setattr(t,'describle','setattr添加属性并赋值')
print(t.describle) #setattr添加属性并赋值

setattr(t,'title','setattr修改原有属性')
print(getattr(t,'title'))  #验证表示已经存在,返回结果为:setattr修改原有属性

hasattr添加属性和修改属性:判断一个对象是否有属性和方法

#hasattr(object,title),判断一个对象是否有name属性或者name方法,返回值为bool值,需要注意的是name需要括起来
print(hasattr(t,'describle'))  #验证表示已经存在,结果是bool值,结果为True

 

posted @ 2019-05-27 21:53  yangzhizong  阅读(143)  评论(0编辑  收藏  举报