python--反射
class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
def show(self):
print("姓名:{},年龄:{}".format(self.name,self.age))
obj=Foo("张三",19)
1、getattr()#通过反射获取对象中的值
例:
a=getattr(obj,"name")
print(a)
#获取方法名,并执行方法
func=getattr(obj,"show")
func()
2、hasattr()#通过反射判断对应的对象中是否存改成员,如存在返回“True”,不存在则返回“False”
对象中存在“age”
b=hasattr(obj,"age")
print(b)
对象中不存在“age1”
b=hasattr(obj,"age1")
print(b)
3、setattr ( ) #通过反射往对象添加变量并且赋值
setattr(obj,"sex","男")
print(obj.sex)
c=getattr(obj,"sex")
print(c)
4、delattr()#通过反射删除对象中的变量
delattr(obj,"age")
print(obj.age)