前言
最近在做一件事情:把flask的源码通读一遍。虽然对flask的运行原理已经比较理解了。但是看了一些代码,发现有很多用法都很有借鉴意义。并且有很多基础模块自己还是不会用。所以决定细细的看一遍flask源码。
一、sys.module的使用
sys.module是一个全局的字典,在初始化python后就已经加载到内存了。比如我们使用的平时的模块,其实早就在module里面记录了。如下:
import sys
print(sys.modules.get("random"))
# 输出
<module 'random' from 'C:\\Users\\ASUS\\Anaconda3\\lib\\random.py'>
注意:此时我们得到是一个module模块。
我们直接打印random所在的模块,就可以找它。module其实记录了很多的python里面自带模块
并且每当导入新的模块,sys.module就会将这些模块记录下来。某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。
sys.module实际上就是一个字典,因此,我们可以使用字典的任何特性。