这是一个理论问题,我一直在寻找答案,但实际上却找不到它。
假设我的主文件main.py
包含import numpy as np
和import helper
。
如果我有一个帮助文件helper.py
,我可以在np
中使用helper.py
,因为我已将其导入main.py
,这是我唯一使用的时间helper.py
来自main.py
,导致numpy
始终被导入?
答案 0 :(得分:1)
没有。 python documentation州:
import语句结合了两个操作;它搜索 命名模块,然后它将搜索结果绑定到一个名称 本地范围。
如果导入发生在模块的顶部,则本地范围将是全局的 - 即模块的本地。
从正面来看,通常只会进行一次导入。 Python将在执行导入之前搜索缓存以进行导入,并且如果找到它,将创建对先前导入的模块的引用。这种保存必须加载第二个副本 - 通常在两个模块中都有导入语句没有坏处。
导入搜索期间检查的第一个位置是sys.modules。这个 mapping用作以前所有模块的缓存 导入,包括中间路径。
此外,来自FAQs:
如何跨模块共享全局变量?
在单个模块中跨模块共享信息的规范方法 程序是创建一个特殊的模块(通常称为config或cfg)。 只需在应用程序的所有模块中导入配置模块;