如果您想以最简单的方式使用timeit()
进行快速测试,那么大多数情况下,如果您将其用作单元格中的唯一行并将函数调用放入该单元格,它就会起作用,如下所示:Jupyter Notebooks上的timeit()中的不一致性我使用Jupyter笔记本和Python 3.6一起使用Jupyter Notebooks
timeit(raiseTo600(6623))
如果你把这么多,因为与命令相同的单元格批注,你会得到一个错误,这就是为什么被称为在先前的小区被定义功能(把它诠释同一个小区,你得到一个错误)。
即使这种行为(它的工作原理)也不是100%一致的。随机地,可能会发生错误并清除它们,您必须重新启动内核,然后再次运行。
我看过在线示例,它接受了timeit()
(引用内的多行代码)内的单个函数调用。我想在代码的单元格中添加注释,并且认为由于我得到的注释中的错误是timeit没有被识别,所以可能包括一个import语句会修复它。但尝试再次做到这一点触发错误:
代码:
from timeit import timeit
timeit(raiseTo600(6623))
输出:
ValueError: stmt is neither a string nor callable
引号内把它创建即使函数是在先前的小区运行这个错误,是工作正常。修改后的代码:
from timeit import timeit
timeit('raiseTo600(6623)')
输出:
NameError: name 'raiseTo600' is not defined
这应该是简单易用。这里出了什么问题?
我已经具有多种功能的测试,这一点,得到了相同的症状,但为了完整性,下面是简单的一个我试图为什么timeit()
不工作使用只摇出:
def raiseTo600(x):
return x**600