Sono un paio di giorni che cerco la risposta precisa a questa domanda, ma non ho niente di buono. Non sono un principiante assoluto nella programmazione, ma non ancora nemmeno a livello intermedio.
Quando sono nella shell di Python, digito: dir()
e posso vedere tutti i nomi di tutti gli oggetti nello scope corrente (blocco principale), ce ne sono 6:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Quindi, quando dichiaro una variabile, ad esempio x = 10
, si aggiunge automaticamente a quegli elenchi di oggetti nel modulo integrato dir()
e quando digito di dir()
nuovo, ora viene visualizzato:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
Lo stesso vale per funzioni, classi e così via.
Come cancello tutti quei nuovi oggetti senza cancellare lo standard 6 che era disponibile all'inizio?
Ho letto qui di "pulizia della memoria", "pulizia della console", che cancella tutto il testo dalla finestra del prompt dei comandi:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Ma tutto questo non ha nulla a che fare con quello che sto cercando di ottenere, non pulisce tutti gli oggetti usati.
del
funzione là fuori. Sto iniziando a imparare Python e spesso devo sperimentare nella shell, quindi i nomi di variabili standard come x
o y
sono spesso già in uso e il riavvio della shell richiede altri 15 secondi (ora ho un laptop molto, molto vecchio). Quindi volevo trovare un modo per pulire la memoria Python più velocemente.
del
non è esattamente una funzione, quindi no (
e )
. È una parola chiave che introduce un'istruzione del. Ovviamente, il modo in cui elimina effettivamente un oggetto può implicare funzioni, ma questa è un'altra storia ...
x
o y
non dovrebbero essere in uso a meno che non li si stia utilizzando. Oppure, a meno che tu non faccia qualcosa di sciocco come from _somemodule_ import *
, allora avrai tutti i tipi di spazzatura che ingombrano il posto. :)