Python:优化模块导入

时间:2016-07-19 16:40:13

标签: python import module

这是一个理论问题,我一直在寻找答案,但实际上却找不到它。

假设我的主文件main.py包含import numpy as npimport helper

如果我有一个帮助文件helper.py,我可以在np中使用helper.py,因为我已将其导入main.py,这是我唯一使用的时间helper.py来自main.py,导致numpy始终被导入?

1 个答案:

答案 0 :(得分:1)

没有。 python documentation州:

  

import语句结合了两个操作;它搜索   命名模块,然后它将搜索结果绑定到一个名称   本地范围。

如果导入发生在模块的顶部,则本地范围将是全局的 - 即模块的本地

从正面来看,通常只会进行一次导入。 Python将在执行导入之前搜索缓存以进行导入,并且如果找到它,将创建对先前导入的模块的引用。这种保存必须加载第二个副本 - 通常在两个模块中都有导入语句没有坏处。

  

导入搜索期间检查的第一个位置是sys.modules。这个   mapping用作以前所有模块的缓存   导入,包括中间路径。

此外,来自FAQs

  

如何跨模块共享全局变量?

     

在单个模块中跨模块共享信息的规范方法   程序是创建一个特殊的模块(通常称为config或cfg)。   只需在应用程序的所有模块中导入配置模块;