如何在 ipython 中清除变量?

有时,我在同一个 ipython 会话中重新运行一个脚本,当变量没有被清除时,我会遇到坏的意外情况。如何清除所有变量? 有没有可能在每次我调用魔法命令 %run时强制执行这个命令?

368074 次浏览

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

编辑于@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?

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

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

为了方便起见,您可以将它们添加到默认模板中。

在 Spyder: Tools>Preferences>Editor>Edit template

在 iPython 中,你可以像下面这样删除一个 单身变量:

del x

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

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

我尽力了

%reset -f

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

希望这个能帮上忙. . :)

除了前面提到的方法之外,您还可以使用 del 命令来删除多个变量

del variable1,variable2

get_ipython().magic()方法在 ipython 8.1中引发了一个 DerecationPolice

 from IPython import get_ipython
get_ipython().run_line_magic('reset', '-sf')

将这些行添加到正在编辑的文件中,

%run file_you_are_editing.py