Autour du codeDevelopper toujours mieux
Posté le

Del est-il utile ?

La première chose à savoir sur del c'est qu'il sert à supprimer une référence vers un objet et pas l'objet.

En python, à chaque fois que vous créer une variable une entrée est ajouté au dictionnaire globals accecible via la fonction du même nom: globals.

a = 5
print(globals()['a']) # 5

En utilisant del sur un nom de variable la seule chose que vous faites et d'enlever une entrée de globals

del a
globals()['a'] # raise KeyError: 'a'

Si une variable est créé dans le scope d'une fonction, l'utilisation de del la supprimera de ce scope. Pour connaitre la liste des variables locales à une fonction on peut utiliser locals(). Par contre il est impossible d'utiliser del pour supprimer une variable du scope parent. Ce serait super crade. frown

Mais de toute manière, une variable créer dans une fonction n'est pas accessible en dehors de cette fonction. En règle générale, il n'y a aucune raison qui pousse à l'utilisation de del pour supprimer une variable. Sauf lors de références cycliques c'est à dire losqu'un objet référence un autre objet qui lui même référence notre premier et que l'on a des problème de performance du au GC.

Un autre cas qui me semble intéressant. Supprimer toutes les variables inutiles à la fin d'un module.

from sys import platform

is_linux = "linux" in platform

if is_linux:
    def foo():
        # do action for linux
        pass
else:
    def foo():
        # do action for other
        pass