0

假设我正在制作一个项目,我们称它为 master.py,因为它是主文件。

#this is master.py
import a
import b
for i in range (whatever):
 for j in range (whatever):
  a.main(i)
  b.main(j)

a 和 b 是我制作的其他子功能,并且在其他文本文件中(以便于调整)。现在让我们说 a 是:

#this is a.py
def main(i):
 from numpy import sin
 return sin(i)

和 b:

#this is b.py
def main(j):
 from random import uniform
 return uniform(0, j)

master.py 调用函数 a 和 ba 很多次。每次这样做时,它都会在 a 中导入 sin,并在 b 中导入 uniform。这效率不高,但我不知道解决方法(除了将 a 和 b 放在与 master.py 相同的文本文件中,出于调试原因我不想这样做)。我已经尝试将导入 sin 和 uniform 的语句放在 master.py 中,但是当它调用 a 和 b 时,它失败了,因为没有导入 sin 和 uniform。我猜它必须在子程序中导入它们?我可以以某种方式在 master.py 中导入 sin 和 uniform 并将它们传递给 a 和 b,这样我就不必每次都导入了吗?

4

1 回答 1

1

a.py您是否尝试过在and的顶部导入b.py

# a.py
from numpy import sin

def main(i):
    return sin(i)

和:

# b.py
from random import uniform

def main(j):
    return uniform(j)

由于这些功能,您不需要执行random.uniformnumpy.sinin的导入。master.py它们被其他模块中的其他函数调用;所以在那些其他模块中需要导入。

同样,这个关于性能的 Python Wiki 页面表明imports文件顶部的 性能优越。

于 2017-06-11T19:56:52.083 回答