我尝试执行timeit.timeit("func()") (func是我自己定义的函数),但是,我总是得到错误name 'func' is not defined。使用Jupyter Notebook (我知道Jupyter的魔法timeit,但我想知道为什么这不起作用?)
发布于 2020-05-29 23:27:21
最有可能的是你在寻找(不加引号,直接):
timeit.timeit(func, number=1000)而不是
timeit.timeit("func()", number=1000)
要使用参数或其他函数,请使用三引号,例如:
import timeit
import_module = "import whatever_module"
testcode = '''
def test():
# some nasty operations here
pass
'''
print(timeit.repeat(stmt=testcode, setup=import_module))代码必须是自包含的,不允许外部引用。
发布于 2020-05-29 23:31:02
如果要将其与第一个参数a字符串一起使用,则该字符串必须包含您的完整代码,例如:
s = """
def func(n=10000):
return [x ** 2 for x in range(n)]
func(10000)
"""
timeit.timeit(s)或者您需要使用setup参数:
s = """
def func(n=10000):
return [x ** 2 for x in range(n)]
"""
timeit.timeit("func()", setup=s)https://stackoverflow.com/questions/62089410
复制相似问题