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

Réponses:


206

%reset semble effacer les variables définies.


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?

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

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 .. :)


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


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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.