在 Jupyter Notebook 中使单元格彼此独立

Making cells independent of each other in a Jupyter notebook

我想要一些独立的计算,所有这些都在 jupyter notebook 中各自的单元格中——如果您愿意,每个单元格都有自己的 "main" 函数。目前它看起来像是包含 Python 的所有单元格的并集 code 本质上是一个大的 Python 程序。

简而言之,我正在为 Mathematica 问一个 Jupyter 版本的 this 问题。

单元格中定义的变量成为全局命名空间中的变量。 要将变量隔离到局部范围,请将它们放在函数中:

In [1]: 

    def foo():
        x = 1
        return x
    foo()

In [2]: 

    def bar():
        x = 2
        return x
    bar()

您可以使用 jupyter_spaces 魔法在伪本地命名空间中执行 Jupyter Notebook 单元格。

例如,让我们在 "normal" 单元格中定义一个变量。

x = 10

假设 Jupyter Spaces 在环境中可用 (pip install jupyter-spaces),我们可以加载 jupyter_spaces 魔法。

%load_ext jupyter_spaces

最后,我们可以在特定的命名空间中执行一个单元,它可以访问 globals 变量。

%%space name_of_the_space
y = 2 * x

在此示例中,y 在全局命名空间中将不可用,就像我们在本地命名空间中执行单元一样。

PyPI or GitHub 上的文档包含更多示例。