介绍
今天就跟大家聊聊有关hasattr (), getattr()和setattr()函数怎么在Python中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强> hasattr(对象名称)强>
判断一个对象里面是否有名字属性或者的名字方法,返回BOOL值,有名字特性返回真,否则返回错误的。
需要注意的是名字要用括号括起来
,在祝辞祝辞,class 测试(): ,,,,的名字=皒iaohua" ,,,,def 运行(自我): ,,,,,,,,return “HelloWord" ,…… ,在在在t=测试() ,在在祝辞hasattr (t),“name"), #判断对象有名字属性 ,真正的 ,在在祝辞hasattr (t),“run"), #判断对象有运行方法 ,真正的 ,祝辞祝辞祝辞
<强> getattr(对象名称[,违约])强>
获取对象对象的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。
需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,可以在后面添加一对括号。
,在祝辞祝辞,class 测试(): ,,,,的名字=皒iaohua" ,,,,def 运行(自我): ,,,,,,,,return “HelloWord" ,…… ,在在在t=测试() ,在在祝辞getattr (t),“name"), #获取名字属性,存在就打印出来。 ,& # 39;小华# 39; ,在在祝辞getattr (t),“run"), #获取运行方法,存在就打印出方法的内存地址。 ,& lt; bound  method test.run  of & lt; __main__.test instance at 0 x0269c878>比; ,在在祝辞getattr (t),“run")(), #获取运行方法,后面加括号可以将这个方法运行。 ,& # 39;HelloWord& # 39; 在祝辞祝辞,getattr (t),“age"), #获取一个不存在的属性。 ,Traceback (most recent call 最后): File 才能“& lt; stdin>“, line 1,拷贝& lt; module> ,AttributeError: test instance  has no attribute & # 39;年龄# 39; ,在在祝辞getattr (t),“age",“18“), #若属性不存在,返回一个默认值。 ,& # 39;18 & # 39; ,在祝辞祝辞
<强> setattr(对象、名称、值)强>
给对象的属性赋值,若属性不存在,先创建再赋值。
,在祝辞祝辞,class 测试(): ,,,,的名字=皒iaohua" ,,,,def 运行(自我): ,,,,,,,,return “HelloWord" ,…… ,在在在t=测试() ,在在祝辞hasattr (t),“age"),, #判断属性是否存在 ,假 ,在在祝辞setattr (t),“age",,“18“),, #为属相赋值,并没有返回值 ,在在祝辞hasattr (t),“age"),, #属性存在了 ,真正的 ,在祝辞祝辞
一种综合的用法是:判断一个对象的属性是否存在,若不存在就添加该属性。
,在祝辞祝辞,class 测试(): ,,,,的名字=皒iaohua" ,,,,def 运行(自我): ,,,,,,,,return “HelloWord" ,…… ,在在在t=测试() ,在在祝辞getattr (t),“age"),, #岁属性不存在 ,Traceback (most recent call 最后): File 才能“& lt; stdin>“, line 1,拷贝& lt; module> ,AttributeError: test instance  has no attribute & # 39;年龄# 39; ,在在祝辞getattr (t),“age",, setattr (t),“age",,“18“)), #岁属性不存在时,设置该属性 ,& # 39;18 & # 39; ,在在祝辞getattr (t),“age"), #可检测设置成功 ,& # 39;18 & # 39; ,在祝辞祝辞