反射到底是个啥?反射这个词从逻辑上来说和倒影是差不多的,从一个3D的立体变成一个二维的平面影像,其实但从这个上面就已经可以理解在编程中反射是干啥用的了 。
用官方的话说"反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力" 。
其实本质上简单说,就是把一个对象类型拆解 。可以使用字符串的形式去访问和修改对象 。
为什么要使用反射?他帮我们解决了什么问题?首先有反射那么就有"正射" 。
正常情况下是导入模块,找到想要的类,再创建实例对象,接着再调用方法,这个方法太麻烦了,一个程序不停的运行,所需要的功能不断增多,不可能手动去一一导入,而且还需要程序去进行判断某个模块功能是否变动,这种情况必须只能是使用反射了 。
这也是为什么很多框架是必须使用反射的原因了,因为反射帮助他们提供了一下几点能力 。
1.能够用字符串的形式去操作对象,提高了程序的灵活性和扩展性 。
2.降低了耦合性,提升了代码的健壮性和自适应能力 。
3.这种形式可以应对任何类的对象 。
那么反射怎么使用呢?Python的内置函数提供了强大的反射机制,
__import__()加载模块
dir()列表形式返回属性和方法
hasattr()检测是否含有某属性
getattr()获取属性
setattr()设置属性
delattr()删除属性
首先创建一个文件say.py并再其中声明一个类say,创建一个sayLove方法 。
文章插图
接着再另一个文件中使用__import__以字符串形式导入模块,读取其中的say类 。
【python的反射到底有什么用?】
文章插图
推荐阅读
- Windows11都出来了,XP和Windows7真的被淘汰了吗
- 百万级数据下的mysql深度解析
- 知道这些关于电脑的基础知识,可以让你的电脑变得更好用
- 人生苦短,必须学会的写Python代码利器
- 数据在网络中是如何传输的
- Android开发:使用Kotlin+协程+自定义注解+Retrofit的网络框架
- 慎用!Python 实现微信消息轰炸
- linux中的makefile编写规则
- win10 21H1 访问共享打印机死机问题的解决方案
- C语言字符串输入及输出的几种方式