104 votes

Comment effacer toutes les variables au milieu d'un script Python ?

Je cherche quelque chose de similaire à "clear" dans Matlab : Une commande/fonction qui supprime toutes les variables de l'espace de travail, les libérant de la mémoire système. Existe-t-il une telle chose en Python ?

EDIT : Je veux écrire un script qui à un moment donné efface toutes les variables.

2 votes

Il serait utile que vous changiez votre titre en quelque chose comme "Comment puis-je effacer toutes les variables au milieu d'un script Python ?" pour les futures recherches sur le sujet, parce que "Comment redémarrer la fenêtre de commande en Python ?" n'a rien à voir avec ce que vous demandez réellement.

0 votes

Pouvez-vous fournir un contexte possible dans lequel cela a un sens ?

2 votes

Cela ressemble à un autre cas où l'on essaie de déplacer les habitudes de codage de leur environnement d'origine vers un environnement où elles n'ont aucun sens.

4voto

tardis Points 374

Dans Spyder, on peut configurer la console IPython pour chaque fichier Python afin d'effacer toutes les variables avant chaque exécution dans le menu Run -> Configuration -> General settings -> Remove all variables before execution .

1 votes

Dans la version 5.05, cela se trouve sous Outils/Préférences/Exécution.

3voto

Kolay.Ne Points 1094

Remarque : vous ne voulez probablement pas faire ça.

Le site globals() renvoie un dictionnaire, dans lequel les clés sont des noms d'objets que vous pouvez nommer (et les valeurs, d'ailleurs, sont id de ces objets) Le site exec() prend une chaîne de caractères et l'exécute comme si vous la tapiez dans une console python. Donc, le code est

for i in globals().keys():
    if not i.startswith('_'):
        exec('del ' + i)

Cela supprimera tous les objets dont le nom ne commence pas par un caractère de soulignement, y compris les fonctions, les classes, les bibliothèques importées, etc.

1 votes

Bien que cet extrait de code puisse résoudre la question, y compris une explication contribue à améliorer la qualité de votre réponse. N'oubliez pas que vous répondez à la question pour des lecteurs à venir, et que ces derniers pourraient ne pas connaître les raisons de votre suggestion de code.

0 votes

Merci. C'est mieux maintenant ?

1voto

Maher Hussein Points 29

Une façon très simple de supprimer une variable est d'utiliser la fonction del fonction.

Par exemple

a = 30
print(a) #this would print "30"

del(a) #this deletes the variable
print(a) #now, if you try to print 'a', you will get
         #an error saying 'a' is not defined

0voto

Harold Henson Points 31

Dans l'IDE au repos, il y a Shell/Restart Shell. Cntrl-F6 le fera.

0voto

Ivan Points 864

Le moyen le plus simple n'est-il pas de créer une classe contenant toutes les variables nécessaires ? Ensuite, vous avez un objet avec toutes les variables courantes, et si vous avez besoin, vous pouvez écraser cette variable ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X