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.
del
funkcja. Zaczynam się uczyć Pythona i często muszę eksperymentować z powłoką, więc standardowe nazwy zmiennych, takie jak x
lub y
czę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.
del
nie 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 ...
x
lub y
nie 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. :)