如何清除ipython中的变量?

Posted

技术标签:

【中文标题】如何清除ipython中的变量?【英文标题】:How to clear variables in ipython? 【发布时间】:2014-05-20 23:34:08 【问题描述】:

有时我在同一个 ipython 会话中重新运行一个脚本,当变量没有被清除时,我会感到很意外。如何清除所有变量? 每次我调用魔术命令 %run 时是否可以以某种方式强制执行此操作?

谢谢

【问题讨论】:

【参考方案1】:

%reset 似乎清除了定义的变量。

【讨论】:

谢谢。有什么方法可以在每次运行前自动设置它? 你可以将你的脚本转换成一个函数来保持全局命名空间干净。 刚发现 %reset -f 清除全局命名空间,无需用户确认 yes reset -f 很好,再也不用每次手动确认了:) @Victor % 用于 ipython 魔术命令这里是 %reset ipython.readthedocs.io/en/stable/interactive/…【参考方案2】:

在@ErdemKAYA 评论后编辑。

要擦除变量,请使用魔法命令:

%reset_selective <regular_expression>

从命名空间中删除的变量与给定的&lt;regular_expression&gt; 匹配。

因此

%reset_selective -f a 

将删除所有包含a的变量。

相反,只删除a 而不是aa

In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a  # raise NameError
In: aa  # returns 2

更多示例请参见%reset_selective?,正则表达式教程请参见https://regexone.com/。

要删除命名空间中的所有变量,请参见:

%reset?

【讨论】:

否则python中的“del a”也可以使用。 不,此命令会将name_variable 视为正则表达式语句,并将删除与其匹配的任何内容。 @ErdemKAYA 谢谢,我以前从未注意到它!答案已编辑。 一点也不! :) 这确实有点违反直觉。【参考方案3】:

在 iPython 中,您可以像这样删除 单个 变量:

del x

【讨论】:

【参考方案4】:

我试过了

%reset -f

并在没有提示的情况下清除了所有变量和内容。 -f 对给定命令执行强制操作,而不提示 yes/no

希望这有帮助.. :)

【讨论】:

【参考方案5】:

在新脚本中添加以下行将在每次重新运行脚本时清除所有变量:

from IPython import get_ipython
get_ipython().magic('reset -sf') 

为了让生活更轻松,您可以将它们添加到您的默认模板中。

在 Spyder 中:Tools&gt;Preferences&gt;Editor&gt;Edit template

【讨论】:

我喜欢这个,因为它也可以从脚本运行。【参考方案6】:

除了前面提到的方法。也可以使用命令del删除多个变量

del variable1,variable2

【讨论】:

【参考方案7】:

控制台面板中的退出选项也会清除变量资源管理器中的所有变量

*** 请注意,您将丢失在控制台面板中运行的所有代码

【讨论】:

以上是关于如何清除ipython中的变量?的主要内容,如果未能解决你的问题,请参考以下文章

代码中的ipython笔记本清除单元格输出

为什么在使用IPython magic%reset来清除变量空间时pool.join()会挂起?

iPython/ Jupyter notebook 只清除一行输出

IPython:如何自动加载 npz 文件并为变量赋值?

IPython notebook:如何编写可以访问笔记本变量的单元魔术?

如何将 iPython 分析器 %%prun -r 的结果分配给变量?