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)

原文地址:https://www.cnblogs.com/hhqdsj/p/12661194.html