删除模块后重新导入模块

ReImporting a module after deleting it

我想了解导入的工作原理

我导入了一个名为 funcs 的模块作为 import funcs

它在 funcs 模块

中打印了一行 "funcs print"

我删除了它的字节码文件并执行 del funcs 取消导入它

我又导入了,但是这次没有打印出来"funcs print"

为什么是什么原因。

我知道 reload(funcs) 的作用,但想在使用 del[=36= 之后了解 import ]

如有任何帮助,我们将不胜感激。

您可能想在 Python shell:

中试试这个
>>> import sys
>>> "funcs" in sys.modules
False
>>> import funcs
funcs print
>>> "funcs" in sys.modules
True
>>> sys.modules["funcs"] is funcs
True
>>> del funcs
>>> "funcs" in sys.modules
True
>>> sys.modules["funcs"]
<module 'funcs' form 'funcs.pyc'>
>>> del sys.modules["funcs"]
>>> import funcs
funcs print

长话短说,import 首先检查模块是否已加载(在 sys.modules 中),只有在未加载时才加载它。