一尘不染

Python-Python中的循环(或循环)导入

python

如果两个模块相互导入会怎样?

为了概括这个问题,Python中的循环导入又如何呢?


阅读 470

收藏
2020-02-07

共1个答案

一尘不染

导入确实非常简单。只要记住以下几点:

'import''from xxx import yyy'是可执行语句。它们在运行的程序到达该行时执行。

如果模块不在sys.modules中,则导入将在sys.modules中创建新的模块条目,然后在模块中执行代码。在执行完成之前,它不会将控制权返回给调用模块。

如果sys.modules中确实存在一个模块,则无论导入是否完成执行,导入都会简单地返回该模块。这就是循环导入可能返回部分为空的模块的原因。

最后,执行脚本在名为__main__的模块中运行,以其自己的名称导入脚本将创建一个与__main__无关的新模块。

放在一起,导入模块时应该不会感到惊讶。

2020-02-07