您的位置:首页 > 编程语言 > Python开发

python getattr/setattr/hasattr的用法

2017-09-01 17:48 417 查看

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 对象