1
resposta

Excluindo o objeto

É possível excluir um objeto abandonado usando algum comando parecido com o "None" usado para desfazer uma referência? Ou seja, não precisar esperar o Python resolver levá-lo ao coletor de lixo, liberando assim a memória o quanto antes?

1 resposta

Oi

Sim, dá pra dar um "tchau" pra um objeto largado antes do Python jogar ele no lixo. Só usar a palavrinha mágica None, do jeito que você falou. Quando a gente bota None numa variável que tá apontando pra um objeto, é como se a gente dissesse que essa variável não tá mais afim desse objeto.

Por exemplo, imagina que a gente tem uma variável chamada obj que tá ligada a um objeto:

obj = MeuObjeto()

Se a gente quiser dar um "tchauzinho" nesse objeto antes do lixeiro do Python passar, é só fazer assim:

obj = None

Com isso, a variável obj não tá mais apontando pro objeto, e daí o lixeiro do Python pode dar um jeito de se livrar dele.

Mas ó, vale lembrar que quando a gente bota None numa variável, a memória que o objeto ocupava não é liberada na hora. O lixeiro do Python que vai cuidar disso, identificando e removendo os objetos largados no momento certo.