He estado buscando la respuesta precisa a esta pregunta durante un par de días, pero no tengo nada bueno. No soy un principiante absoluto en programación, pero aún ni siquiera en el nivel intermedio.
Cuando estoy en el shell de Python, escribo: dir()
y puedo ver todos los nombres de todos los objetos en el alcance actual (bloque principal), hay 6 de ellos:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Luego, cuando declaro una variable, por ejemplo x = 10
, se agrega automáticamente a esa lista de objetos en el módulo incorporado dir()
, y cuando vuelvo a escribir dir()
, se muestra ahora:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
Lo mismo ocurre con las funciones, clases, etc.
¿Cómo elimino todos esos objetos nuevos sin borrar el estándar 6 que estaba disponible al principio?
He leído aquí sobre "limpieza de memoria", "limpieza de la consola", que borra todo el texto de la ventana del símbolo del sistema:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Pero todo esto no tiene nada que ver con lo que estoy tratando de lograr, no limpia todos los objetos usados.
del
función ahí fuera. Estoy comenzando a aprender Python y, a menudo, tengo que experimentar en el shell, por lo que los nombres de variables estándar como x
o a y
menudo ya están en uso y reiniciar el shell me lleva otros 15 segundos (ahora tengo una computadora portátil muy, muy vieja). Así que quería encontrar una forma de limpiar la memoria de Python más rápido.
del
no es exactamente una función, por lo tanto, no (
y )
. Es una palabra clave que introduce una declaración del. Por supuesto, la forma en que realmente elimina un objeto puede involucrar funciones, pero esa es otra historia ...
x
o y
no deberían estar en uso a menos que los esté usando. O a menos que hagas algo tonto como from _somemodule_ import *
, entonces tendrás todo tipo de basura abarrotando el lugar. :)