Destructor de Python

Vaibhhav Khetarpal 10 octubre 2023
Destructor de Python

Los destructores se utilizan cuando es necesario limpiar un objeto de Python. Básicamente, tiene un papel completamente opuesto al de un constructor y se usa para revertir las operaciones que realiza un constructor. Los destructores se despliegan principalmente para organizarse en un programa e implementar los estándares de codificación.

Este tutorial demuestra el uso de un destructor en Python.

La necesidad de destructores en Python no es tanta como en otros lenguajes de programación como C++, ya que el recolector de basura de Python maneja automáticamente la administración de la memoria. Sin embargo, existen destructores en Python, y este artículo explica su uso y funcionamiento.

Usamos la función __del__() como destructor en Python. Cuando el programador llama a la función __del__(), todas las referencias a objetos se eliminan, lo que se conoce como recolección de basura.

La sintaxis del destructor es la siguiente:

def __del__(self):
    # Write destructor body here

Las ventajas de usar destructor en programas Python se encuentran a continuación.

  1. Se libera espacio en la memoria, ya que los objetos innecesarios que consumen espacio se eliminan automáticamente.
  2. Es fácil ya que se invoca automáticamente.

El siguiente código usa un destructor en 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

El código anterior proporciona el siguiente Resultado:

Fruits created.
Destructor called, Fruits deleted.

El código anterior muestra que se ha llamado al destructor después de que finalizó el programa o cuando se eliminaron todas las referencias dadas al objeto. Esto significa que el valor del recuento de referencia para el objeto dado, después de un momento determinado, se vuelve cero y no cuando el objeto dado se desplaza fuera del alcance.

Aquí hay otro código que explica más detalladamente el destructor.

class Fruits:
    def __del__(self):
        print("Fruits deleted")


a = Fruits()
del a
a = Fruits()
b = a
del b
del a

En el código anterior, se define una clase Fruits y el objeto a es una referencia a la clase mientras que el objeto b es una copia local de esa referencia a. Cuando se elimina b, la función no se llama porque solo contiene la copia local y nada más.

Tanto los constructores como los destructores son esenciales en el mundo de la programación, independientemente del lenguaje que utilice el programador. Los destructores juegan un papel importante en la recolección de basura. Es posible que no veamos grandes cambios en pequeños fragmentos de código, pero en programas complejos y códigos de nivel de producción, donde el uso de la memoria es una gran prioridad, la importancia de los destructores es visible con bastante claridad.

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

Artículo relacionado - Python Class