Comment effacer les variables en ipython?

146

Parfois, je réexécute un script dans la même session ipython et j'ai de mauvaises surprises lorsque les variables n'ont pas été effacées. Comment effacer toutes les variables? Et est-il possible de forcer cela d'une manière ou d'une autre à chaque fois que j'invoque la commande magique% run?

Merci

sauterelle
la source

Réponses:

206

%reset semble effacer les variables définies.

aisbaa
la source
2
Merci. Un moyen de le définir automatiquement avant chaque exécution de%?
grasshopper
2
Vous pouvez convertir votre script en une fonction pour garder l'espace de noms global propre.
Robert Pollak
35
Vient de trouver% reset -f efface l'espace de noms global sans confirmation de l'utilisateur
WillJones
1
oui reset -f est génial, pas besoin de confirmer manuellement à chaque fois plus :)
user3723247
1
@Victor %est utilisé pour les commandes magiques ipython, voici %reset ipython.readthedocs.io/en/stable/interactive/…
aisbaa
56

MODIFIÉ après le commentaire de @ErdemKAYA.

Pour effacer une variable, utilisez la commande magique:

%reset_selective <regular_expression>

Les variables effacées de l'espace de noms sont celles qui correspondent à celles données <regular_expression>.

Par conséquent

%reset_selective -f a 

effacera toutes les variables contenant un fichier a.

Au lieu de cela, pour effacer uniquement aet non aa:

In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a  # raise NameError
In: aa  # returns 2

voir aussi %reset_selective?pour plus d'exemples et https://regexone.com/ pour un tutoriel regex.

Pour effacer toutes les variables de l'espace de noms, voir:

%reset?
SeF
la source
9
Sinon, "del a" de python peut également être utilisé.
SeF
1
Non, cette commande sera traitée name_variablecomme une instruction regex et supprimera tout ce qui lui correspond.
Erdem KAYA
@ErdemKAYA merci, je ne l'ai jamais remarqué auparavant! Réponse modifiée.
SeF
1
Pas du tout! :) C'est en effet un peu contre-intuitif.
Erdem KAYA
37

Dans iPython, vous pouvez supprimer une seule variable comme celle-ci:

del x
Joop
la source
13

j'ai essayé

%reset -f

et effacé toutes les variables et le contenu sans invite. -feffectue l'action de force sur la commande donnée sans demander oui / non .

Je souhaite que cela aide .. :)

Babu KM
la source
9

L'ajout des lignes suivantes à un nouveau script effacera toutes les variables chaque fois que vous réexécuterez le script:

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

Pour vous faciliter la vie, vous pouvez les ajouter à votre modèle par défaut.

Dans Spyder: Tools>Preferences>Editor>Edit template

Carl
la source
J'aime cela car il peut également être exécuté à partir d'un script.
Zargo
4

En dehors des méthodes mentionnées précédemment. Vous pouvez également utiliser la commande del pour supprimer plusieurs variables

del variable1,variable2
Mandal Devarshi
la source
0

Une option de quitter dans le panneau de la console effacera également toutes les variables dans l'explorateur de variables

*** Notez que vous perdrez tout le code que vous avez exécuté dans le panneau de console

Sirish
la source