python

什么是反射:

  反射的概念是由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__)

#为什么要用反射???
# 可以实现定义好的接口,接口只有在被完成后才会真正执行,这实现了即插即用
原文地址:https://www.cnblogs.com/Anec/p/9769012.html