用Python(以及最流行的编程语言)导入包/模块的“常规”方法是在新创建的Python模块的开头编写一个导入语句,例如import math
。你知道吗
如果我们在一个方法中导入另一个模块(我们多次使用这个方法),解释器会再次导入我们的模块(定义和语句)吗?这会影响我们节目的表现吗?你知道吗
简言之,以下两者在性能方面的区别是什么:
import math
def int_square(n):
return int(math.sqrt(n))
以及:
def int_square(n):
import math
return int(math.sqrt(n))
编辑: 我只是用以下代码行测试了一下:
import time
import math
def calculate(n):
return math.sqrt(n)
def calculate2(n):
import math
return math.sqrt(n)
t1 = time.time()
for i in range(1000000):
calculate(3)
t2 = time.time()
print(t2 - t1)
t1 = time.time()
for i in range(1000000):
calculate2(3)
t2 = time.time()
print(t2 - t1)
输出(在i3第3代处理器上)
calculate() -> 0.444s
calculate2() -> 1.500s
好好想想。如果您多次调用一个方法,那么在方法中每次导入模块都是毫无意义的,而不是一次。它只是更有效,更符合逻辑。你知道吗
相关问题 更多 >
编程相关推荐