gpt4 book ai didi

python - 将函数中的局部变量导入timeit

转载 作者:太空狗 更新时间:2023-10-30 01:01:28 26 4
gpt4 key购买 nike

我需要对可变数据量的函数执行计时。

def foo(raw_data):
preprocessed_data = preprocess_data(raw_data)
time = timeit.Timer('module.expensive_func(preprocessed_data)', 'import module').timeit()

但是,preprocessed_data 不是全局变量。它不能用 from __main__ 导入。它是该子程序的局部。

如何将数据导入timeit.Timer环境?

最佳答案

将它传递给时间的可调用对象,而不是字符串。 (不幸的是,这引入了一些额外的函数调用开销,因此只有当时间问题淹没了这些开销时,它才可行。)

time = timeit.timeit(lambda: module.expensive_func(data))

在 Python 3.5 及更高版本中,您还可以指定一个带有字符串语句的显式 globals 字典来计时:

time = timeit.timeit('module.expensive_func(data)',
globals={'module': module, 'data': data})

关于python - 将函数中的局部变量导入timeit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25768889/

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