Construtores e destrutores são métodos especiais em Python que permitem criar e destruir objetos de uma classe, respectivamente.
O construtor em Python é o método __init__(). Ele é executado automaticamente quando um objeto é criado a partir de uma classe e é utilizado para inicializar os atributos do objeto. O primeiro parâmetro de um construtor deve ser sempre self, que representa o próprio objeto. Os demais parâmetros são utilizados para receber os valores dos atributos:
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
pessoa = Pessoa("João", 30)
print(pessoa.nome) # Saída: João
print(pessoa.idade) # Saída: 30
Neste exemplo, utilizamos o construtor para definir os valores dos atributos nome e idade quando um objeto Pessoa é criado.
O destrutor em Python é o método __del__(). Ele é executado automaticamente quando um objeto de uma classe é destruído, seja por meio de uma instrução del ou quando o objeto deixa de ser referenciado. O destrutor não recebe parâmetros e é utilizado para liberar recursos utilizados pelo objeto:
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
def __del__(self):
print("Objeto destruído")
pessoa = Pessoa("João", 30)
del pessoa # Saída: Objeto destruído
Neste exemplo, utilizamos o destrutor para imprimir uma mensagem indicando que o objeto Pessoa foi destruído. Quando a instrução del pessoa é executada, o objeto é destruído e o destrutor é executado automaticamente.