Poniższa sekwencja poleceń usuwa wszystkie nazwy z bieżącego modułu:
>>> import sys
>>> sys.modules[__name__].__dict__.clear()
Wątpię, czy naprawdę chcesz to zrobić, ponieważ „każde imię” zawiera wszystkie wbudowane elementy, więc po takim całkowitym wymazaniu niewiele możesz zrobić. Pamiętaj, że w Pythonie tak naprawdę nie ma czegoś takiego jak „zmienna” - istnieją obiekty różnego rodzaju (w tym moduły, funkcje, klasy, liczby, łańcuchy znaków, ...) i są nazwy powiązane z obiektami; sekwencja usuwa każdą nazwę z modułu (odpowiednie obiekty znikają wtedy i tylko wtedy, gdy wszystkie odniesienia do nich zostały właśnie usunięte).
Może chcesz być bardziej selektywny, ale trudno odgadnąć, co masz na myśli, chyba że chcesz być bardziej szczegółowy. Ale żeby podać przykład:
>>> import sys
>>> this = sys.modules[__name__]
>>> for n in dir():
... if n[0]!='_': delattr(this, n)
...
>>>
Ta sekwencja pozostawia same nazwy, które są prywatne lub magiczne, w tym __builtins__nazwę specjalną, która zawiera wszystkie wbudowane nazwy. Tak więc wbudowane nadal działają - na przykład:
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'n']
>>>
Jak widzisz, nazwa n(w tym zmienna kontrolna for) również się trzyma (ponieważ jest ponownie wiązana w forklauzuli za każdym razem), więc może lepiej nazwać tę zmienną kontrolną _, na przykład, aby wyraźnie pokazać special "(dodatkowo w interaktywnym interpretatorze nazwa i tak _jest ponownie wiązana po każdym pełnym wyrażeniu wprowadzonym w znaku zachęty, do wartości tego wyrażenia, więc nie będzie trwało długo ;-).
W każdym razie, kiedy już dokładnie określić, co to jest chcesz zrobić, to nie jest trudne do zdefiniowania funkcji do celów i umieścić go w pliku startowego (jeśli chcesz go tylko w sesjach interaktywnych) lub plik site-Dostosuj ( jeśli chcesz to w każdym skrypcie).