python中hasattr() getattr() setattr() 函数详情讲解
python中hasattr,getattr,setattr
python中hasattr()
hasattr函数主要 是判断对象中是否存在该值,有者返回Ture,没着 False
class test():
dict = {"data" : "dict"}
def hello(self):
return "HelloWord"
t=test()
print(hasattr(t, "dict")) #在类中存在 dict,hasattr 存在着返回True
print(hasattr(t, "helloo")) #在类中 hasattr 找不到 helloo 着返回 False
python中getattr()
etattr 返回类对象的属性或方法, 第二个参数必须是字符串, 可以返回函数内存地址,后面加括号可以运行该函数
class User:
def __init__(self):
self.name='alen'
def func(self):
print("hello")
return "hello alen" # 必须有返回值, 否则为none
test = User()
print(getattr(test,'alen',""alen)) # 类中没alen这属性,default--默认返回值,没有提供则报错
print(getattr(test,'name')) #返回 alen
print(getattr(test,"func")) #返回类对象里面 func函数内存地址
print(getattr(test,"func")()) #运行类对象 func函数
python中setattr()
用于给对象设置(添加或修改)属性值 , (该属性可以不存在)
传入参数
obj – 对象
attr_name – 字符串, 对象属性名
value – 给attr_name属性所赋的值
返回值:
None
class test:
country = 'China'
def __init__(self, name):
self.name = name
def people_info(self):
print(f'%s is xxx{self.name}')
setattr(test, 'x', "alen") #在类对象中添加属性
print(test.x) #打印该属性 alen
obj = test('alen')
setattr(obj, 'age', "66") #类赋予对象,在通过setattr 添加属性
print(obj.__dict__) #打印出类对象 有啥属性 {'name': 'alen', 'age': '66'}