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.