我正在编写一个python模块,其中包含多个文件,以及子目录中的文件。
例如,假设基目录为./package
,子目录为./package/sub
,文件为./package/sub/file1.py
和./package/file2.py
。
在./package/sub/file1.py
中,我导入了以下第三方模块:
import pickle
import numpy as np
在./package/file2.py
中,我导入了之前的相同模块,以及子文件夹中的模块,如下所示:
import pickle
import numpy as np
import sub.file1 as sub
现在,事实证明,sub
在sub.pickle
下有自己版本的pickle
,然后file1和file2有自己版本的pickle。有没有办法消除这种冗余?
如果这不是问题,有没有人知道这两个泡菜导入是否会引用相同的内存区域?
有没有更好的方式让我围绕导入来设计我的代码?
发布于 2018-08-04 05:03:06
你不需要做任何事。Python导入系统使用缓存(在sys.modules
字典中)来防止一个模块被两次导入。在代码中的任何地方使用相同的名称调用import
都会在第一次产生相同的模块对象,从而使模块对象成为一种“单例”。
https://stackoverflow.com/questions/51679992
复制相似问题