在 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
在全局命名空间中将不可用,就像我们在本地命名空间中执行单元一样。
我想要一些独立的计算,所有这些都在 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
在全局命名空间中将不可用,就像我们在本地命名空间中执行单元一样。