有时候我在同一个ipython会话中重新运行一个脚本,当变量没有被清除时,我会感到非常意外。我该如何清除所有变量?有没有可能在每次调用神奇的命令%run时都强制执行此操作?
%run
gpnt7bae1#
%reset似乎清除了定义的变量。
%reset
2fjabf4q2#
在@ErdemKAYA评论后编辑。要擦除变量,请使用魔术命令:
%reset_selective <regular_expression>
从名称空间中删除的变量是与给定的<regular_expression>匹配的变量。因此
<regular_expression>
%reset_selective -f a
将擦除所有包含a的变量。相反,要仅擦除a而不擦除aa:
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_selective?
%reset?
krcsximq3#
在iPython中,你可以移除一个单个变量,如下所示:
del x
1mrurvl14#
我试过了
%reset -f
并且清除了所有变量和内容,没有提示。-f对给定命令执行强制操作,没有提示 yes/no。希望这对你有帮助。:)
-f
e4eetjau5#
在新脚本中添加以下行将在每次重新运行脚本时清除所有变量:
from IPython import get_ipython get_ipython().magic('reset -sf')
为了让生活更轻松,您可以将它们添加到默认模板中。在Spyder中:Tools>Preferences>Editor>Edit template
Tools>Preferences>Editor>Edit template
c86crjj06#
除了前面提到的方法外,你还可以使用del命令删除多个变量
del variable1,variable2
rfbsl7qr7#
在ipython 8.1中,get_ipython().magic()方法会引发DeprecationWarning。
get_ipython().magic()
from IPython import get_ipython get_ipython().run_line_magic('reset', '-sf')
将这些行添加到您正在编辑的文件中。
%run file_you_are_editing.py
tyky79it8#
控制台面板中的退出选项还将清除变量资源管理器中的所有变量
***请注意,您将丢失在控制台面板中运行的所有代码
8条答案
按热度按时间gpnt7bae1#
%reset
似乎清除了定义的变量。2fjabf4q2#
在@ErdemKAYA评论后编辑。
要擦除变量,请使用魔术命令:
从名称空间中删除的变量是与给定的
<regular_expression>
匹配的变量。因此
将擦除所有包含
a
的变量。相反,要仅擦除
a
而不擦除aa
:请参阅
%reset_selective?
以获得更多示例,并参阅https://regexone.com/以获得正则表达式教程。若要清除名称空间中的所有变数,请参阅:
krcsximq3#
在iPython中,你可以移除一个单个变量,如下所示:
1mrurvl14#
我试过了
并且清除了所有变量和内容,没有提示。
-f
对给定命令执行强制操作,没有提示 yes/no。希望这对你有帮助。:)
e4eetjau5#
在新脚本中添加以下行将在每次重新运行脚本时清除所有变量:
为了让生活更轻松,您可以将它们添加到默认模板中。
在Spyder中:
Tools>Preferences>Editor>Edit template
c86crjj06#
除了前面提到的方法外,你还可以使用del命令删除多个变量
rfbsl7qr7#
在ipython 8.1中,
get_ipython().magic()
方法会引发DeprecationWarning。将这些行添加到您正在编辑的文件中。
tyky79it8#
控制台面板中的退出选项还将清除变量资源管理器中的所有变量
***请注意,您将丢失在控制台面板中运行的所有代码