Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:优化模块导入_Python_Import_Module - Fatal编程技术网

Python:优化模块导入

Python:优化模块导入,python,import,module,Python,Import,Module,这是一个理论上的问题,我一直在寻找答案,但从来没有真正找到它 假设我有我的主文件main.py,它有import numpy作为np和import helper 如果我有一个helper文件helper.py,我可以在helper.py中使用np,因为我已经在main.py中导入了它,并且我唯一一次使用helper.py是通过main.py,导致numpy总是被导入?否。状态: import语句结合了两个操作;它搜索 命名模块,然后将搜索结果绑定到 局部范围 如果导入发生在模块顶部,则本地作用域

这是一个理论上的问题,我一直在寻找答案,但从来没有真正找到它

假设我有我的主文件
main.py
,它有
import numpy作为np
import helper

如果我有一个helper文件
helper.py
,我可以在
helper.py
中使用
np
,因为我已经在
main.py
中导入了它,并且我唯一一次使用
helper.py
是通过
main.py
,导致
numpy
总是被导入?

否。状态:

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

如果导入发生在模块顶部,则本地作用域将是全局的,即模块的本地作用域

从好的方面来看,通常只会发生一次导入。Python将在执行导入之前搜索缓存中的导入,并在找到之前导入的模块时创建对该模块的引用。这就需要加载第二个副本——在两个模块中都使用import语句(通常)是无害的

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

此外,从:

如何跨模块共享全局变量

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


复制品?你做实验时发生了什么?