我正在尝试捕获ipython笔记本魔法函数的结果对象。具体来说%timeit
所以下面的代码…

import time
def say_hello(n):
    time.sleep(n)
    print "hello"

t = %timeit say_hello(5)

打印到标准输出:
1 loops, best of 3: 5 s per loop

但是,我想在变量中捕获%timeit say_hello(5)的结果。
一个名为t的结果对象是由TimeitResult生成的,但我不知道如何从笔记本中访问它。
比起使用%timeit技巧手动捕获stdout,我想要一个更干净的解决方案(此代码将是演示文稿的一部分,因此我正在尽可能保持它的直线性)。有人有什么想法吗?

最佳答案

在链接到的源文件中,docstring显示运行timeit magic函数的选项;其中一个选项返回对象结果:

-o: return a TimeitResult that can be stored in a variable to inspect
        the result in more details.

所以,如果你跑步
obj = %timeit -o somefunc()

obj将引用返回的结果对象(提示:在对象上使用制表符完成,它将向您显示其具有的属性)。

关于python - 捕获IPython魔术函数的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25289437/

10-15 17:36