我想了解导入的工作原理
我将名为 funcs 的模块导入导入功能
它在 funcs 模块中打印了一行“funcs print”
我删除了它的字节码文件并执行了 del funcs 来取消导入
我再次导入它但这次它没有打印“funcs print”
为什么是什么原因。
我知道重新加载(funcs)但是在使用 del
之后想要了解 import任何帮助都将不胜感激。
答案 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
中),如果不加载则只加载模块。