1.getattr(obj,attr,default)
获取对象obj的attr属性或方法,attr需要加引号:
如果是属性,返回属性值,
如果返回的是方法,返回方法的内存地址,需要执行该方法,后面加()
default用于设置在不存在该属性或方法时,默认的返回值
#接上面的代码
#获取foo方法,如果不存在,默认返回‘NotExist’
foo_name = getattr(newobj,'foo','NotExist')
print(foo_name)
#<bound method CreateObj.foo of <__main__.CreateObj object at 0x000001EFFC569898>>
2.setattr(obj,attr,value)
给对象属性赋值,如果不存在该属性,那就先创建该属性再赋值
返回值为None,
#接上面代码
print(hasattr(newobj,'age')) #False
setattr(newobj,'age','10') #想当于newobj.age='10'
print(hasattr(newobj,'age')) #True
3.hasattr(obj,attr)
判断obj对象是否存在attr这个属性或方法,attr需要加引号,结果返回布尔类型
如:
class CreateObj(object):
name = 'Lisi'
def foo(self):
print(self.name)
newobj = CreateObj()
isexist = hasattr(newobj,'name')
print(isexist) #True