我想知道如果我在另一个文件上调用一个模块,该模块导入了已经在主调用中导入的相同python模块,它会被导入两次吗?如果是,我该如何预防?推荐的方法是什么?
在以下示例中,time
模块被导入到两个文件中。作为替代解决方案,我将time
模块作为参数传递给位于不同文件上的模块调用。
示例:
hello.py
from module import module
import time
time.sleep(1)
module();
module.py
import time; # Already imported in hello.py
def module(): #{
time.sleep(1)
print('hello')
#}
替代::我将time
模块作为参数传递给位于module()
下的module.py
函数中。
hello.py
from module import module
import time
time.sleep(1)
module(time);
module.py
def module(time): #{
time.sleep(1)
print('hello')
#}
答案 0 :(得分:1)
一个模块仅被定位和执行一次,无论导入多少次。它存储在In [101]: (10170290665425347857)**0.5
Out[101]: 3189089316.0
In [102]: ((10170290665425347857)**0.5) % 1
Out[102]: 0.0
字典中,因此后续导入只是字典查找。没有理由要避免同一模块的多次导入。