如何将参数传递给timeit.timeit函数Python

时间:2018-11-06 18:32:30

标签: python-3.7 timeit

我必须测试我的功能:

def change_min_and_max(array):
    some_code

我需要使用timeit.timeit。但是我无法将数组传递给函数:

import random
array = [random.randint(-1000, 1000) for _ in range(100)]
import timeit
print(timeit.timeit('change_min_and_max(array)', number=100))
  

未定义名称“ change_min_and_max”

1 个答案:

答案 0 :(得分:0)

问题是,timeit在单独的命名空间中执行代码,并且不了解函数和数组定义。您可以使用globals参数指定名称空间。如果您只想使用当前的名称空间,则可以使用globals()函数,如下所示:

import random, timeit

def change_min_and_max(array):
    ...

array = [...]

timeit.timeit("change_min_and_max(array)", globals=globals())