如何在 IPython 或 Jupyter 笔记本中获取最近执行的'execution count'?



IPython和Jupyter笔记本记录"执行计数"。这例如显示在输入和输出提示中:In[...]Out[...]

如何通过编程获取最新的执行计数?

变量Out不能用于此:

  • Out是一个字典,将执行计数作为关键字,但仅用于生成结果的单元格;注意,并非所有(小区(执行都需要产生结果(例如print(...)(

变量In似乎是可用的:

  • In是所有输入的列表;似乎In[0]总是用一个空字符串初始化,因此您可以使用基于1的执行计数作为索引

但是,在使用len(In) - 1时,在您的代码中,您需要考虑执行计数似乎是在执行新代码之前更新的。因此,实际上,似乎您需要使用len(In) - 2来计算最近已完成执行的执行计数。

问题:

  • 是否有更好的方法来获取当前执行计数
  • 你能相信上面的观察结果吗(">似乎"(

经过更多的挖掘,我找到了(令人惊讶的简单(答案:

from IPython import get_ipython
ipython = get_ipython()
... ipython.execution_count ...

这并没有出现在IPython文档中,尽管这里可能(应该?(提到:https://ipython.readthedocs.io/en/stable/api/generated/IPython.core.interactiveshell.html(我想属性没有记录(。在这里你可以找到run_line_magic(这是在对我的问题的评论中提到的(。

我找到这个属性的方法是如上所述定义ipython,然后在ipython.上执行代码完成(TAB((但它没有文档(。

help(ipython)

提供了关于InteractiveShell的文档,并且它确实提到了execution_count(尽管它没有确认其用途(:

|  execution_count
|      An int trait.

最新更新