Estou procurando a resposta precisa para essa pergunta há alguns dias, mas não encontrei nada de bom. Não sou um novato completo em programação, mas ainda não estou no nível intermediário.
Quando estou no shell do Python, digito: dir()
e posso ver todos os nomes de todos os objetos no escopo atual (bloco principal), há 6 deles:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Então, quando estou declarando uma variável, por exemplo x = 10
, ela adiciona automaticamente a essa lista de objetos no módulo integrado e dir()
, quando eu digito dir()
novamente, ela mostra agora:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
O mesmo vale para funções, classes e assim por diante.
Como excluo todos esses novos objetos sem apagar o padrão 6 que estava disponível no início?
Eu li aqui sobre "limpeza de memória", "limpeza do console", que apaga todo o texto da janela do prompt de comando:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Mas tudo isso não tem nada a ver com o que estou tentando alcançar, não limpa todos os objetos usados.
del
função lá fora. Estou começando a aprender Python e frequentemente tenho que experimentar no shell, então nomes de variáveis padrão como x
ou y
muitas vezes já estão em uso e reiniciar o shell leva mais 15 segundos para fazer (eu tenho um laptop muito, muito antigo agora). Então, eu queria encontrar uma maneira de limpar a memória do Python mais rápido.
del
não é exatamente uma função, portanto, não (
e )
. É uma palavra-chave que introduz uma instrução del. Claro, como ele realmente exclui um objeto pode envolver funções, mas isso é outra história ...
x
ou y
não devem ser usados, a menos que você os esteja usando. Ou a menos que você faça algo bobo como from _somemodule_ import *
, então você terá todo tipo de lixo bagunçando o lugar. :)