Od kilku dni szukam dokładnej odpowiedzi na to pytanie, ale nie mam nic dobrego. Nie jestem całkowitym początkującym w programowaniu, ale nie jestem jeszcze na poziomie średniozaawansowanym.
Kiedy jestem w powłoce Pythona, piszę: dir()i widzę wszystkie nazwy wszystkich obiektów w bieżącym zakresie (głównym bloku), jest ich 6:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Następnie, kiedy deklaruję zmienną, na przykład x = 10, automatycznie dodaje do listy obiektów pod wbudowanym modułem dir(), a kiedy piszę dir()ponownie, pokazuje teraz:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
To samo dotyczy funkcji, klas i tak dalej.
Jak usunąć wszystkie te nowe obiekty bez wymazywania standardu 6, który był dostępny na początku?
Czytałem tutaj o „czyszczeniu pamięci”, „czyszczeniu konsoli”, które usuwa cały tekst z okna wiersza poleceń:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Ale to wszystko nie ma nic wspólnego z tym, co próbuję osiągnąć, nie usuwa wszystkich używanych obiektów.
delfunkcja. Zaczynam się uczyć Pythona i często muszę eksperymentować z powłoką, więc standardowe nazwy zmiennych, takie jak xlub yczęsto są już w użyciu, a ponowne uruchomienie powłoki zajmuje kolejne 15 sekund (mam teraz bardzo, bardzo stary laptop). Chciałem więc znaleźć sposób na szybsze wyczyszczenie pamięci Pythona.
delnie jest dokładnie funkcją, stąd nie (i ). To słowo kluczowe, które wprowadza instrukcję del. Oczywiście, sposób, w jaki faktycznie usuwa obiekt, może wiązać się z funkcjami, ale to już inna historia ...
xlub ynie powinny być używane, chyba że ich używasz. Lub jeśli nie zrobisz czegoś głupiego from _somemodule_ import *, wtedy będziesz miał wszelkiego rodzaju śmieci zaśmiecające to miejsce. :)