Python Destructor

Vaibhhav Khetarpal 10 outubro 2023
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.

  1. O espaço de memória é liberado porque os objetos que consomem espaço desnecessários são excluídos automaticamente.
  2. É 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 Khetarpal avatar Vaibhhav Khetarpal avatar

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

Artigo relacionado - Python Class