什么是反射:
反射的概念是由smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究,它首先被程序语言的设计领域锁采用.
# 反射函数: class abc(): def __init__(self,name): self.name = name self.old = 12 def test(self): return 'test' anec = abc('anec') # hasattr(object,name(字符串类型)) #判断参数是否在object对象里面: # 返回值:True/False print(hasattr(anec,"old")) print(hasattr(anec,"test")) # getattr(object,name(字符串类型)) # 获取object对应的参数() # 返回值: 有,返回值是一个object对象/没有 就报错 print(getattr(anec,'test')) xx = getattr(anec,'test') print(xx()) # setattr(object,name,value) # 设置object对应参数的值 # value是设置的值 #设置实例属性: setattr(anec,"xx",1231231231) print(anec.__dict__) #设置类的函数属性: def test2(): return 'test2' setattr(anec,'test2',test2) print(anec.__dict__) # delattr(object,name) # 删除object对应的值 delattr(anec,'xx') print(anec.__dict__) #为什么要用反射??? # 可以实现定义好的接口,接口只有在被完成后才会真正执行,这实现了即插即用