本文主要是介绍python getattr/setattr/hasattr的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
这篇关于python getattr/setattr/hasattr的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!