我正在尝试实现魔法以支持一种编程语言,其中必须立即编译整个模块。我的目标是将具有特定单元魔法的笔记本中的所有单元格合并为单个模块M
。
要使此工作正常,当单元格C
发生更改时,我需要从C
中删除M
的旧内容,并将其替换为C
的新内容。但是,当为C
调用单元格魔法时,无法判断它是C
而不是任何其他旧单元格或新单元格。我需要的是一个在细胞魔法调用之间保持不变的标识符。
这种小区标识符在IPython API中的任何位置都可用吗?
答案 0 :(得分:1)
否:内核(执行发生的地方)对笔记本界面一无所知。从内核的角度来看,它接收一些要执行的代码,并发回一些结果。因此,运行相同的单元格两次与运行具有相同内容的两个单元格完全相同。
我不知道你正在使用什么语言,但其他需要编译的魔法将一个单元格视为一个模块。例如,请查看the %%cython magic。