Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python效率:在我导入的东西中导入东西?_Python_Import_Coding Efficiency - Fatal编程技术网

Python效率:在我导入的东西中导入东西?

Python效率:在我导入的东西中导入东西?,python,import,coding-efficiency,Python,Import,Coding Efficiency,假设我正在制作一个项目,我们将其命名为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 ret

假设我正在制作一个项目,我们将其命名为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中引入罪恶,在b中引入统一。这可能效率不高,但除了将a和b与master.py放在同一个文本文件中之外,我不知道如何解决这个问题,出于调试原因,我不想这样做。我尝试将用于导入sin和uniform的语句放在master.py中,但是当它调用a和b时,它失败了,因为sin和uniform没有被导入。我猜它必须在子程序中导入它们?我可以在master.py中导入sin和uniform并将它们传递给a和b,这样我就不必每次都导入了吗

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

以及:

您不需要在master.py中导入random.uniform和numpy.sin,因为它们都是函数。它们被其他模块中的其他函数调用;因此,其他模块中需要导入


同时,也表明文件顶部的导入在性能上更为优越。

这不可能是有效的-您有任何证据证明这一点吗?i、 你的代码运行缓慢吗?请注意,一个简单的解决方案,尽管我不是说它实际上会产生性能差异,但它只是简单地将导入从函数中提升到a.py和b.py的顶层。抱歉,如果不清楚,这只是一个备注。我认为一遍又一遍地导入同样的东西是没有效率的。我还没有真正构建我的主程序,我正在计划如何在做任何深入的工作之前使其高效。当每次调用函数时都会执行import语句时,import语句所做的第一件事就是查看请求的模块是否已经被导入;进口被有效地记录下来。也就是说,不要将导入语句放在函数中;把它们放在模块的开头。
# a.py
from numpy import sin

def main(i):
    return sin(i)
# b.py
from random import uniform

def main(j):
    return uniform(j)