Python:有没有办法使用timeit.timeit()导入变量?

假设我有一些函数接受一个数组并将每个元素更改为0.

def function(array):
    for i in range(0,len(array)):
        array[i] = 0
return array

我想测试这个函数在随机数组上运行需要多长时间,我希望生成timeit测试的OUTSIDE.换句话说,我不想将生成数组所花费的时间包括在内.

我首先在变量x中存储一个随机数组并执行:

timeit.timeit("function(x)",setup="from __main__ import function")

但这给了我一个错误:NameError:未定义全局名称’x’

我怎样才能做到这一点?

解决方法:

从__main__导入x:

timeit.timeit("function(x)", setup="from __main__ import function, x")

就像函数一样,x是__main__模块中的名称,可以导入到timeit设置中.

上一篇:时间段返回什么时间单位?


下一篇:为什么IPython的timeit不能与set原义一起使用?