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

Xolve:

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

为了概括这个问题,Python中的循环导入怎么办?

Shane C. Mason:

去年comp.lang.python上对此进行了非常好的讨论它相当彻底地回答了您的问题。

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

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

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

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

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

综合考虑这一点,在导入模块时应该不会感到惊讶。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章