什么是反射

光在两种物质分界面上改变传播方向又返回原来物质中的现象,叫反射!

以上,是反射的物理定义,与python中的反射概念,完全没有任何关系

书归正传:反射

就是通过字符串的形式,操作对象相关的属性

反射的相关函数:

hasattr(object,"name")
#返回bool类型,判断object的命名空间中是否存在name这个名字
#存在返回True
#不存在返回Flase
obj = getattr(object,"name")
#获得Object中名称为name的内存地址
#name可以是一个方法,也可以是一个属性
setattr(Object,"name","egon")
#在Object中添加一个name名字,并赋值egon
#在Object的__dict__中就可以看到{"name":"egon"}了
delattr(Object,"name")
#在Object中删除名称为name的内存地址

为什么要用反射,反射有什么优势

实现可插拔机制

例如:程序员A负责写模块,程序员B负责调用,当程序员A的模块没有完成,程序员B依然可以将代码完成,而且与程序员A的工作不相冲突

代码示例:

1 # 编辑者:闫龙
2 class ftpc:
3     def __init__(self,x):
4         print("come no baby",x)
5     def getFile(self):
6         print("反正里面有文件")
7     def upFile(self):
8         print("你就当上传成功了一个叫FuckEgon的文件")
程序员A的未完成模块

相关文章:

  • 2021-07-03
  • 2022-12-23
  • 2021-04-17
  • 2022-12-23
  • 2021-10-11
猜你喜欢
  • 2021-09-11
  • 2022-12-23
  • 2021-05-30
  • 2021-07-23
  • 2021-08-08
  • 2021-06-05
相关资源
相似解决方案