有时,我在同一个 ipython 会话中重新运行一个脚本,当变量没有被清除时,我会遇到坏的意外情况。如何清除所有变量? 有没有可能在每次我调用魔法命令 %run时强制执行这个命令?
%run
%reset似乎清除了已定义的变量。
%reset
编辑于@ErdemKAYA 评论后。
要删除一个变量,使用魔法命令:
%reset_selective <regular_expression>
从命名空间中擦除的变量与给定的 <regular_expression>匹配。
<regular_expression>
因此
%reset_selective -f a
将删除包含 a的变量。
a
相反,只擦除 a而不擦除 aa:
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_selective?
要删除命名空间中的所有变量,请参见:
%reset?
在新脚本中添加以下行将在每次重新运行脚本时清除所有变量:
from IPython import get_ipython get_ipython().magic('reset -sf')
为了方便起见,您可以将它们添加到默认模板中。
在 Spyder: Tools>Preferences>Editor>Edit template
Tools>Preferences>Editor>Edit template
在 iPython 中,你可以像下面这样删除一个 单身变量:
del x
控制台面板中的退出选项也将清除变量资源管理器中的所有变量
注意,您将丢失在控制台面板中运行的所有代码
我尽力了
%reset -f
并且在没有提示的情况下清除了所有的变量和内容。-f在不提示 是/否的情况下对给定命令执行强制操作。
-f
希望这个能帮上忙. . :)
除了前面提到的方法之外,您还可以使用 del 命令来删除多个变量
del variable1,variable2
get_ipython().magic()方法在 ipython 8.1中引发了一个 DerecationPolice
get_ipython().magic()
from IPython import get_ipython get_ipython().run_line_magic('reset', '-sf')
将这些行添加到正在编辑的文件中,
%run file_you_are_editing.py