Python import运行模块的原理

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、执行导入模块命令时,会首先检查待导入的模块是否在当前已有模块之中,如果有则跳过import。因此模块之间相互引用不会导致循环。

查看当前已导入模块使用下面方法

importsyssys.modules

得到结果是一个字典,键是模块名,值是文件所在路径

2、import语句与文件执行

在这样的文件结构下

Trymodule
│first.py
├───folder1
││abcd.py
││__init__.py

folder1是一个package,abcd是一个module

import folder1 只是导入package,相当于执行__init__.py文件

from folder import abcd则执行了__init__.py文件文件与abcd.py文件

from folder1.abcd import b其实也执行了__init__.py文件文件与abcd.py文件

abcd模块中定义了print语句后,import两次,只有第一次会print出值,说明第二次检查出模块已在导入之列,忽略了这条import命令。