我必须测试我的功能:
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”
答案 0 :(得分:0)
问题是,timeit在单独的命名空间中执行代码,并且不了解函数和数组定义。您可以使用globals
参数指定名称空间。如果您只想使用当前的名称空间,则可以使用globals()
函数,如下所示:
import random, timeit
def change_min_and_max(array):
...
array = [...]
timeit.timeit("change_min_and_max(array)", globals=globals())