Sometimes I rerun a script within the same ipython session and I get bad surprises when variables haven't been cleared. How do I clear all variables? And is it possible to force this somehow every time I invoke the magic command %run?
Thanks
Sometimes I rerun a script within the same ipython session and I get bad surprises when variables haven't been cleared. How do I clear all variables? And is it possible to force this somehow every time I invoke the magic command %run?
Thanks
%reset seems to clear defined variables.
EDITED after @ErdemKAYA comment.
To erase a variable, use the magic command:
%reset_selective <regular_expression>
The variables that are erased from the namespace are the one matching the given <regular_expression>.
Therefore
%reset_selective -f a
will erase all the variables containing an a.
Instead, to erase only a and not aa:
In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a # raise NameError
In: aa # returns 2
see as well %reset_selective? for more examples and https://regexone.com/ for a regex tutorial.
To erase all the variables in the namespace see:
%reset?
Adding the following lines to a new script will clear all variables each time you rerun the script:
from IPython import get_ipython
get_ipython().magic('reset -sf')
To make life easy, you can add them to your default template.
In Spyder: Tools>Preferences>Editor>Edit template
Apart from the methods mentioned earlier. You can also use the command del to remove multiple variables
del variable1,variable2
An quit option in the Console Panel will also clear all variables in variable explorer
*** Note that you will be loosing all the code which you have run in Console Panel
The get_ipython().magic() method raises a DeprecationWarning in ipython 8.1. Here is the new version of Carl's answer
from IPython import get_ipython
get_ipython().run_line_magic('reset', '-sf')
Add these lines to a file you are editing. Then at the ipython command prompt you can type,
%run file_you_are_editing.py