[英]Passing function of function to timeit getting NameError
我想用timeit计算三个类似的函数。 我已经编写了这段代码,但是当我将一个函数传递给测试函数时,我不明白发生了什么。
def f0(x, y, z):
#some code here
def f1(x, y, z):
#a slighty similar function
def f2(x, y, z):
#still another similar function
def test(name):
x=100
y=100
z=100
res=name(x,y,z)
if __name__ == '__main__':
import timeit
print(timeit.timeit("test(f0)", setup="from __main__ import test"))
我得到的错误是:
NameError: global name 'f0' is not defined
您需要导入测试中提到的所有全局名称:
print(timeit.timeit("test(f0)", setup="from __main__ import test, f0"))
线路test(f0)
需要查找f0
,而不仅仅是test()
。
你也必须导入f0
,就像这样
print(timeit.timeit("test(f0)", setup="from __main__ import test, f0"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.