gpt4 book ai didi

python - 将 lambda 函数作为变量传递给 timeit 中的另一个函数

转载 作者:行者123 更新时间:2023-11-28 21:26:20 26 4
gpt4 key购买 nike

我有一个名为 func 的 Python 函数,我正在尝试使用 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 作为参数传递给 timeit 中的 func 有什么想法吗?

最佳答案

可以使用 python 可调用值调用 timeit:只需将您的方法更改为:

from src import package
import functools

def testTimingOfFunc(f):
time = timeit.timeit(functools.partial(package.func, f))

关于python - 将 lambda 函数作为变量传递给 timeit 中的另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com