Je cherche la réponse exacte à cette question depuis quelques jours maintenant, mais je n'ai rien de bon. Je ne suis pas un débutant complet en programmation, mais pas encore au niveau intermédiaire.
Quand je suis dans le shell de Python, je tape: dir()
et je peux voir tous les noms de tous les objets dans la portée actuelle (bloc principal), il y en a 6:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Ensuite, lorsque je déclare une variable, par exemple x = 10
, elle ajoute automatiquement à cette liste d'objets sous le module intégré dir()
, et lorsque je tape à dir()
nouveau, cela montre maintenant:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
Il en va de même pour les fonctions, les classes, etc.
Comment supprimer tous ces nouveaux objets sans effacer le standard 6 qui était disponible au début?
J'ai lu ici à propos du "nettoyage de la mémoire", du "nettoyage de la console", qui efface tout le texte de la fenêtre d'invite de commande:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Mais tout cela n'a rien à voir avec ce que j'essaie de réaliser, cela ne nettoie pas tous les objets utilisés.
del
fonction là-bas. Je commence à apprendre Python et je dois souvent expérimenter dans le shell, donc les noms de variables standard comme x
ou y
sont souvent déjà utilisés et le redémarrage du shell prend encore 15 secondes à faire (j'ai un très, très vieux portable maintenant). Je voulais donc trouver un moyen de nettoyer plus rapidement la mémoire Python.
del
n'est pas exactement une fonction, donc non (
et )
. C'est un mot-clé qui introduit une instruction del. Bien sûr, la façon dont il supprime réellement un objet peut impliquer des fonctions, mais c'est une autre histoire ...
x
ou y
ne devraient pas être utilisés à moins que vous ne les utilisiez. Ou à moins que vous ne fassiez quelque chose de stupide from _somemodule_ import *
, alors vous obtiendrez toutes sortes de déchets encombrant l'endroit. :)