【发布时间】:2014-05-20 23:34:08
【问题描述】:
有时我在同一个 ipython 会话中重新运行一个脚本,当变量没有被清除时,我会感到很意外。如何清除所有变量? 每次我调用魔术命令 %run 时是否可以以某种方式强制执行此操作?
谢谢
【问题讨论】:
有时我在同一个 ipython 会话中重新运行一个脚本,当变量没有被清除时,我会感到很意外。如何清除所有变量? 每次我调用魔术命令 %run 时是否可以以某种方式强制执行此操作?
谢谢
【问题讨论】:
%reset 似乎清除了定义的变量。
【讨论】:
% 用于 ipython 魔术命令这里是 %reset ipython.readthedocs.io/en/stable/interactive/…
在@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?
【讨论】:
name_variable 视为正则表达式语句,并将删除与其匹配的任何内容。
在 iPython 中,您可以像这样删除 单个 变量:
del x
【讨论】:
我试过了
%reset -f
并在没有提示的情况下清除了所有变量和内容。 -f 对给定命令执行强制操作,而不提示 yes/no。
希望这有帮助.. :)
【讨论】:
在新脚本中添加以下行将在每次重新运行脚本时清除所有变量:
from IPython import get_ipython
get_ipython().magic('reset -sf')
为了让生活更轻松,您可以将它们添加到您的默认模板中。
在 Spyder 中:Tools>Preferences>Editor>Edit template
【讨论】:
除了前面提到的方法。也可以使用命令del删除多个变量
del variable1,variable2
【讨论】:
控制台面板中的退出选项也会清除变量资源管理器中的所有变量
*** 请注意,您将丢失在控制台面板中运行的所有代码
【讨论】: