For loop 如何在for循环中运行jupyter笔记本宏

For loop 如何在for循环中运行jupyter笔记本宏,for-loop,macros,jupyter-notebook,For Loop,Macros,Jupyter Notebook,我在Jupyter笔记本中定义了一个宏inc。我可以从另一个单元格运行宏。但是,宏不能在for循环中运行 [1] [2] [3] [4] [5] 产出2 [6] [7] 仍然输出2。我现在想到的最好的方法是使用run\u cell方法 首先,您需要使用get\u Ipython 完整示例 这不是一个让我完全满意的解决方案,但也许其他人可以添加更好的解决方案 注意:下面的解决方案适用于较老的Ipython 尝试将其作为可调用文件运行: for _ in range(10): inc() 你也可以

我在Jupyter笔记本中定义了一个宏
inc
。我可以从另一个单元格运行宏。但是,宏不能在for循环中运行

[1]

[2]

[3]

[4]

[5]

产出2

[6]

[7]


仍然输出2。

我现在想到的最好的方法是使用
run\u cell
方法

首先,您需要使用
get\u Ipython

完整示例 这不是一个让我完全满意的解决方案,但也许其他人可以添加更好的解决方案


注意:下面的解决方案适用于较老的
Ipython

尝试将其作为可调用文件运行:

for _ in range(10): inc()
你也可以阅读:

宏只是一个执行IPython字符串的可调用函数


我添加了()并得到了
TypeError:“Macro”对象不可调用
我添加了另一个应该适合您的解决方案
x += 1
%macro inc 2
inc
x
for _ in range(10): inc
x
ip = get_ipython()
for _ in range(5): ips.run_cell('inc')
for _ in range(10): inc()
In [20]: inc.__dict__
Out[20]: {'value': u'x += 1\n'}