在Python performan中导入模块

2024-06-02 06:40:07 发布

您现在位置:Python中文网/ 问答频道 /正文

用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

Tags: 模块方法importreturntimedefmathsqrt