La siguiente secuencia de comandos elimina todos los nombres del módulo actual:
>>> import sys
>>> sys.modules[__name__].__dict__.clear()
Dudo que realmente quieras hacer esto, porque "todos los nombres" incluyen todos los componentes integrados, por lo que no hay mucho que puedas hacer después de una eliminación tan total. Recuerde, en Python realmente no existe tal cosa como una "variable" - hay objetos , de muchos tipos (incluyendo módulos, funciones, clases, números, cadenas, ...), y hay nombres ligados a objetos; lo que hace la secuencia es eliminar todos los nombres de un módulo (los objetos correspondientes desaparecen si y solo si se acaba de eliminar cada referencia a ellos).
Tal vez quieras ser más selectivo, pero es difícil adivinar exactamente a qué te refieres a menos que quieras ser más específico. Pero, solo para dar un ejemplo:
>>> import sys
>>> this = sys.modules[__name__]
>>> for n in dir():
... if n[0]!='_': delattr(this, n)
...
>>>
Esta secuencia deja solo los nombres que son privados o mágicos, incluido el __builtins__nombre especial que alberga todos los nombres incorporados. Por lo tanto, los elementos integrados siguen funcionando, por ejemplo:
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'n']
>>>
Como ves, nombre n (la variable de control en eso for) también se mantiene (ya que se vuelve a unir en la forcláusula cada vez que se completa), por lo que podría ser mejor nombrar esa variable de control _, por ejemplo, para mostrar claramente "es especial "(además, en el intérprete interactivo, el nombre _se vuelve a vincular de todos modos después de cada expresión completa ingresada en el indicador, al valor de esa expresión, por lo que no se quedará por mucho tiempo ;-).
De todos modos, una vez que haya determinado exactamente qué es lo que desea hacer, no es difícil definir una función para el propósito y ponerla en su archivo de inicio (si lo desea solo en sesiones interactivas) o en el archivo de personalización del sitio ( si lo desea en cada guión).