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