¿Hay alguna forma de eliminar variables, funciones, etc. creadas de la memoria del intérprete?

| | | | | | | | | | | | | | | |

He estado buscando la respuesta precisa a esta pregunta durante un par de días, pero no he encontrado nada bueno. No soy un completo principiante en programación, pero aún no estoy 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__ ", "__paquete__", "__spec__"] 

Luego, cuando estoy declarando una variable, por ejemplo x = 10, se agrega automáticamente a esa lista de objetos bajo el módulo incorporado dir(), y cuando escribo dir() nuevamente, aparece ahora:

[" __builtins__", "__doc__", "__loader__", "__name__", "__package__", "__spec__", "x"] 

Lo mismo ocurre con funciones, clases, etc.

¿Cómo elimino todos esos objetos nuevos sin borrar los 6 estándar que estaban disponibles 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:

>>> importar sistema >>> claro = 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.