Python Destructor
Os destruidores são chamados quando um objeto Python precisa ser limpo. Ele basicamente tem uma função completamente oposta a de um construtor e é usado para reverter as operações que um construtor executa. Os destruidores são principalmente implantados para organizar em um programa e implementar os padrões de codificação.
Este tutorial demonstra o uso de um destruidor em Python.
A necessidade de destruidores em Python não é tanto quanto em outras linguagens de programação como C++, pois o coletor de lixo do Python automaticamente lida com o gerenciamento de memória. No entanto, existem destruidores no Python, e este artigo explica seu uso e funcionamento.
Usamos a função __del__()
como destruidor em Python. Quando o programador chama a função __del__()
, todas as referências de objeto são removidas, o que é conhecido como coleta de lixo.
A sintaxe do destruidor é a seguinte:
def __del__(self):
# Write destructor body here
As vantagens de usar o destruidor em programas Python estão abaixo.
- O espaço de memória é liberado porque os objetos que consomem espaço desnecessários são excluídos automaticamente.
- É fácil porque é invocado automaticamente.
O código a seguir usa um destruidor em Python.
class Fruits:
# Calling constructor
def __init__(self):
print("Fruits created.")
# Calling destructor
def __del__(self):
print("Destructor called, Fruits deleted.")
obj = Fruits()
del obj
O código acima fornece a seguinte Resultado:
Fruits created.
Destructor called, Fruits deleted.
O código acima mostra que o destruidor foi chamado depois que o programa foi encerrado ou quando todas as referências fornecidas ao objeto foram excluídas. Isso significa que o valor da contagem de referência para o objeto fornecido, após um determinado momento, torna-se zero e não quando o objeto fornecido sai do escopo.
Aqui está outro código que explica melhor o destruidor.
class Fruits:
def __del__(self):
print("Fruits deleted")
a = Fruits()
del a
a = Fruits()
b = a
del b
del a
No código acima, uma classe Frutas
é definida, e o objeto a
é uma referência à classe, enquanto o objeto b
é uma cópia local dessa referência a
. Quando b
é excluído, a função não é chamada porque contém apenas a cópia local e nada mais.
Ambos os construtores e destruidores são essenciais no mundo da programação, não importa qual linguagem o programador usa. Os destruidores desempenham um papel importante na coleta de lixo. Podemos não ver grandes mudanças em pequenos pedaços de código, mas em programas complexos e códigos de nível de produção, onde o uso de memória é uma grande prioridade, a importância dos destruidores é claramente visível.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn