Python 效率:在我正在导入的东西中导入东西?
Python efficiency: importing things in things I am importing?
假设我正在制作一个项目,我们称它为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 和 b。每次这样做,它都会在 a 中导入 sin,在 b 中导入 uniform。这效率不高,但我不知道解决它的方法(除了将 a 和 b 放在与 master.py 相同的文本文件中,出于调试原因我不想这样做)。我尝试将导入 sin 和 uniform 的语句改为 master.py,但是当它调用 a 和 b 时,它失败了,因为没有导入 sin 和 uniform。我想它必须在子程序中导入它们?我能以某种方式在 master.py 中导入 sin 和 uniform 并将它们传递给 a 和 b 这样我就不必每次都导入了吗?
您是否尝试过在 a.py
和 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)
您不需要在 master.py
中导入 random.uniform
和 numpy.sin
,因为这些功能。它们被其他模块中的其他函数调用;所以在那些其他模块中需要导入。
此外,this Python Wiki page on performance 表示文件顶部的 imports
性能优越。
假设我正在制作一个项目,我们称它为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 和 b。每次这样做,它都会在 a 中导入 sin,在 b 中导入 uniform。这效率不高,但我不知道解决它的方法(除了将 a 和 b 放在与 master.py 相同的文本文件中,出于调试原因我不想这样做)。我尝试将导入 sin 和 uniform 的语句改为 master.py,但是当它调用 a 和 b 时,它失败了,因为没有导入 sin 和 uniform。我想它必须在子程序中导入它们?我能以某种方式在 master.py 中导入 sin 和 uniform 并将它们传递给 a 和 b 这样我就不必每次都导入了吗?
您是否尝试过在 a.py
和 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)
您不需要在 master.py
中导入 random.uniform
和 numpy.sin
,因为这些功能。它们被其他模块中的其他函数调用;所以在那些其他模块中需要导入。
此外,this Python Wiki page on performance 表示文件顶部的 imports
性能优越。