Destructeur Python

Vaibhhav Khetarpal 22 octobre 2021
Destructeur Python

Les destructeurs sont appelés lorsqu’un objet Python doit être nettoyé. Il a fondamentalement un rôle complètement opposé à celui d’un constructeur et est utilisé pour inverser les opérations qu’un constructeur effectue. Les destructeurs sont principalement déployés pour s’organiser en programme et mettre en œuvre les standards de codage.

Ce tutoriel montre l’utilisation d’un destructeur en Python.

Le besoin de destructeurs en Python n’est pas aussi important que dans d’autres langages de programmation comme C++, car le ramasse-miettes de Python gère automatiquement la gestion de la mémoire. Cependant, les destructeurs existent en Python, et cet article explique leur utilisation et leur fonctionnement.

Nous utilisons la fonction __del__() comme destructeur en Python. Lorsque le programmeur appelle la fonction __del__(), toutes les références d’objets sont supprimées, ce qui est connu sous le nom de ramasse-miettes.

La syntaxe du destructeur est la suivante :

def __del__(self):
    # Write destructor body here

Les avantages de l’utilisation du destructeur dans les programmes Python sont ci-dessous.

  1. L’espace mémoire est libéré car les objets qui consomment de l’espace inutiles sont automatiquement supprimés.
  2. C’est facile car il est invoqué automatiquement.

Le code suivant utilise un destructeur 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

Le code ci-dessus fournit la sortie suivante :

Fruits created.
Destructor called, Fruits deleted.

Le code ci-dessus montre que le destructeur a été appelé après la fin du programme ou lorsque toutes les références données à l’objet sont supprimées. Cela signifie que la valeur du compteur de références pour l’objet donné, après un certain temps, devient zéro et non lorsque l’objet donné sort de la portée.

Voici un autre code qui explique davantage le destructeur.

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


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

Dans le code ci-dessus, une classe Fruits est définie, et l’objet a est une référence à la classe tandis que l’objet b est une copie locale de cette référence a. Lorsque b est supprimé, la fonction n’est pas appelée car elle ne contient que la copie locale et rien d’autre.

Les constructeurs et les destructeurs sont essentiels dans le monde de la programmation, quel que soit le langage utilisé par le programmeur. Les destructeurs jouent un rôle important dans le ramasse-miettes. Nous ne verrons peut-être pas de grands changements dans de petits morceaux de code, mais dans les programmes complexes et les codes de niveau production, où l’utilisation de la mémoire est une grande priorité, l’importance des destructeurs est clairement visible.

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

Article connexe - Python Class