我inc
在Jupyter Notebook中定义了一个宏。我可以从另一个单元运行宏。但是,该宏不能在for循环中运行。
[1]
x = 0
[2]
x += 1
[3]
%macro inc 2
[4]
inc
[5]
x
输出2
[6]
for _ in range(10): inc
[7]
x
仍然输出2。
我现在想出的最好的run_cell
方法是
首先,您需要使用来获取当前的交互式Ipython shell get_ipython
ip = get_ipython()
for _ in range(5): ips.run_cell('inc')
这不是一个让我完全满意的解决方案,但是也许其他人可以添加更好的东西。
注意:以下解决方案适用于较旧的
Ipython
尝试仅将其作为可调用对象运行:
for _ in range(10): inc()
Ipython宏是的实例 IPython.core.macro.Macro
文档指出,这只是一个简单的对象,将历史记录块存储在变量中。这是真的。
In [20]: inc.__dict__
Out[20]: {'value': u'x += 1\n'}
您还可以阅读:
宏只是一个执行IPython字符串的可调用对象
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句