Python之hasattr,getattr与setattr的使用
Posted 一切皆往事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之hasattr,getattr与setattr的使用相关的知识,希望对你有一定的参考价值。
一. 定义一个类
class Person(object):
def __init__(self, name):
self.name = name
def fun1(self):
print(\'fun1\')
二. hasattr
检查某对象
Object
中是否包某个属性或方法。语法为:hasattr(object,name)
。
(一). 用法
person = Person(\'test\')
print(hasattr(person, \'name\')) # True
print(hasattr(person, \'name1\')) # False
print(hasattr(person, \'fun1\')) # True
由于name1
在Person
这个类中不存在会返回False
,而name
存在就会返回True
. 可以使用hasattr
来判断某对象中是否存在某个属性或者某个方法。
三. getattr
获取某个对象
Object
中的属性的属性值。语法为:getattr(object,name,default=None)
。
(一). 用法
person1 = Person(\'test1\')
print(getattr(person1, \'name\')) # test1
print(getattr(person1, \'name1\', \'没有值\')) # 没有值
# 不建议使用getattr操作获取函数的返回值。
# <bound method Person.fun1 of <__main__.Person object at 0x7fa7aa29b460>>
print(getattr(person1, \'fun1\'))
注意:如果使用getattr
来获取不存在的属性时会出现报错。个人建议先使用hasattr
判断你需要的属性存在时再使用getattr
来获取值。
四. setattr
给某个对象
Object
添加一个属性或方法设置其属性或方法的值。语法为:setattr(object,name,value)
。
(一). 用法
1. 设置属性
person2 = Person(\'test2\')
setattr(person2, \'age\', 18)
print(person2.age) # 18
print(person2.name) # test2
setattr(person2, \'name\', \'new test2\')
print(person2.name) # new test2
2. 设置方法
# 设置不存在的方法。
person3 = Person(\'test3\')
def test():
return "test 函数"
setattr(person3, \'test\', test)
print(person3.test()) # test 函数
# 设置同名的方法,同名方法里的内容会随之替换的。
def fun1():
return \'fun1 函数\'
setattr(person3, \'fun1\', fun1)
print(person3.fun1()) # fun1 函数
以上是关于Python之hasattr,getattr与setattr的使用的主要内容,如果未能解决你的问题,请参考以下文章
Python之hasattr()getattr()和setattr()
Python之hasattr()getattr()和setattr()
python反射hasattr getattr setattr delattr
python中的hasattr()getattr()setattr()