我正在尝试创建一个类似于 %pylab 的 ipython 魔术,但更明确(可能是这里的后续):
运行时,理想情况下,它会用注释版本替换自己 + 附加执行导入并运行单元格的行:
%mymagic
# some code
会变成
# %mymagic
import numpy as np
%matplotlib qt
import matplotlib.pyplot as plt
# ..some other imports
# the same code from earlier
想法是,不仅魔术只会做非常明确的事情 - 即您实际上会看到它运行的代码/它将明确保存在笔记本中,而且像往常一样方便 - 只需快速导入几个符号(在控制台中很有用)。
对我来说,问题是在更改单元格后运行单元格(我以%load
魔法为例,所以我set_next_input
用来更改单元格)。我已经尝试在魔法中运行导入(即究竟是如何%pylab
做到的)然后更改单元格,但这样做的缺点是使单元格处于“未运行”状态,并且效果不如魔法在 ipython 控制台中调用(您必须按 Enter 键才能删除显式文本)。此外,相同的代码必须维护两次(一次用于“打印”,第二次用于执行魔法时的实际导入)
任何建议如何解决这个问题?谢谢