每次调用时都是从 'origin-module' 中抓取的函数吗?

Is a function grabbed from the 'origin-module' every time I call it?

我有一个基本问题:

我有两个文件。其中一个 work.py 包含我的脚本,另一个 mytools.py 包含我的所有函数。

work.py中,我导入,即模块是这样的:

import mytools as mt

work.py 的代码中某处会这样说:

mt.do_something()

这是否意味着它会 (i) 从 'imported copy' 调用函数,或者 (ii) 直接从模块调用函数,换句话说,是否有一个常量 link 在 work.py 和导入模块的文件 mytools.py 之间?

作为我为什么要问这个的解释......如果直接调用原始模块,我可以对单个函数的参数进行小的调整,而 work.py 是 运行 -- 当然在等待期间 times/pause.

Python中的import system有2个阶段:

  1. 正在搜索模块
  2. 加载它以创建模块对象

第二步包括读取并"executing"模块文件中包含的源代码以在内存中创建模块对象。

在 Python 3.4 及更高版本中,如果由于某种原因模块的源在脚本执行期间发生更改,您可以重新加载它。

from importlib import reload
import foo

# changes in foo

foo = reload(foo)

This answer 为您提供详细信息。