如何清除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>
从命名空间中删除的变量与给定的<regular_expression>
匹配。
因此
%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>Preferences>Editor>Edit template
【讨论】:
我喜欢这个,因为它也可以从脚本运行。【参考方案6】:除了前面提到的方法。也可以使用命令del删除多个变量
del variable1,variable2
【讨论】:
【参考方案7】:控制台面板中的退出选项也会清除变量资源管理器中的所有变量
*** 请注意,您将丢失在控制台面板中运行的所有代码
【讨论】:
以上是关于如何清除ipython中的变量?的主要内容,如果未能解决你的问题,请参考以下文章
为什么在使用IPython magic%reset来清除变量空间时pool.join()会挂起?
iPython/ Jupyter notebook 只清除一行输出