【问题标题】:Avoid storing objects in Jupyter notebook cache避免将对象存储在 Jupyter 笔记本缓存中
【发布时间】:2018-02-03 21:04:02
【问题描述】:
Jupyter 将我的对象存储在输出变量中,例如 _1、_2、..._10。通常在使用笔记本的过程中,我会用新结果覆盖旧结果,并用新结果覆盖旧单元格。
但是,我的数据继续留在内存中,存在于这些隐藏的输出变量中。有没有办法在用户端“请不要在我的笔记本中存储任何输出变量”或在对象端“请不要将我存储在输出变量中”禁用此行为?
【问题讨论】:
标签:
python
ipython
jupyter-notebook
jupyter
【解决方案1】:
仅当单元格中的最后一句是一个值不同于None 且末尾没有分号的表达式时,才会创建输出变量。因此,您可以完全控制单元格级别:使用分号禁用输出变量的显示和创建。使用print 或display(均返回None)在不创建输出变量的情况下获得对象的可视化表示。
以下示例来自 IPython 控制台,但笔记本的工作方式相同。
In [1]: 'hello'
Out[1]: hello
In [2]: 'hello';
In [3]: print('hello')
hello
In [4]: display('hello')
'hello'
此时_1 已定义并绑定到'hello',但_2、_3 和_4 未定义。