如何清除ipython中的变量?

but5z9lq  于 2022-11-21  发布在  Python
关注(0)|答案(8)|浏览(136)

有时候我在同一个ipython会话中重新运行一个脚本,当变量没有被清除时,我会感到非常意外。我该如何清除所有变量?有没有可能在每次调用神奇的命令%run时都强制执行此操作?

gpnt7bae

gpnt7bae1#

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

2fjabf4q

2fjabf4q2#

在@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?
krcsximq

krcsximq3#

在iPython中,你可以移除一个单个变量,如下所示:

del x
1mrurvl1

1mrurvl14#

我试过了

%reset -f

并且清除了所有变量和内容,没有提示。-f对给定命令执行强制操作,没有提示 yes/no
希望这对你有帮助。:)

e4eetjau

e4eetjau5#

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

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

为了让生活更轻松,您可以将它们添加到默认模板中。
在Spyder中:Tools>Preferences>Editor>Edit template

c86crjj0

c86crjj06#

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

del variable1,variable2
rfbsl7qr

rfbsl7qr7#

在ipython 8.1中,get_ipython().magic()方法会引发DeprecationWarning。

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

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

%run file_you_are_editing.py
tyky79it

tyky79it8#

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

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

相关问题