我有一个名为的 Python 函数func
,我正在尝试使用timeit
.
func
接受一个参数,f
,这也是一个函数。在我正在编写的程序中,它是一个 lambda 函数,但它也可以是一个定期定义的函数。重要的是这个函数的源代码不可用func
,所有可用的只是对它的引用。
我正在尝试做的事情:
def testTimingOfFunc(f):
time = timeit.timeit("package.func(f)", "from src import package")
我收到一个错误,指出f
未定义。
其他一切工作正常。当我打电话时:
testTimingOfFunc('lambda x:x**2')
并将函数更改为:
def testTimingOfFunc(f):
time = timeit.timeit("package.func(" + str(f) + ")",
"from src import package")
一切正常,所以我知道有关该timeit
功能的一切都很好。
但这不是testTimingOfFunc
工作原理。传入的是函数引用,而不是字符串。
关于如何将我f
作为参数传递给func
in的任何想法timeit
?