删除模块后重新导入模块

时间:2015-05-21 11:50:16

标签: python import

我想了解导入的工作原理

我将名为 funcs 的模块导入导入功能

它在 funcs 模块中打印了一行“funcs print”

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

我再次导入它但这次它没有打印“funcs print”

为什么是什么原因。

我知道重新加载(funcs)但是在使用 del

之后想要了解 import

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可能想在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中),如果不加载则只加载模块。