DELATTR |
Efface l'attribut |
---|---|
Python |
Syntaxe
delattr(objet, nom) |
Paramètres
Nom | Description |
---|---|
objet | Ce paramètre permet d'indiquer l'objet à traiter |
nom | Ce paramètre permet d'indiquer le nom de l'attribut à enlever |
Description
Cette fonction permet d'enlever un attribut à l'objet spécifié.
Algorithme
* Entrées : * objet : l'objet dont on veut supprimer un attribut * nom_attribut : chaîne de caractères représentant le nom de l'attribut à supprimer MODULE DELATTR(objet, nom_attribut) * Vérifier si l'objet possède un attribut avec le nom spécifié : SI vérifier si l'objet possède un attribut avec nom_attribut ALORS Supprimer cet attribut de l'objet SINON Lever une exception AttributeError indiquant que l'attribut n'existe pas FIN SI |
Remarques
- La fonction delattr est utilisée pour supprimer dynamiquement un attribut d'un objet en Python. Cela signifie qu'on peut modifier la structure d'un objet en cours d'exécution, ce qui offre une certaine flexibilité dans le traitement des objets. Cependant, cela doit être fait avec précaution, car enlever un attribut peut affecter le comportement ou la stabilité du programme.
- La syntaxe delattr(objet, nom) prend deux paramètres : l'objet concerné, et le nom de l'attribut à supprimer. Il est important de noter que le second paramètre est une chaîne de caractères représentant le nom de l'attribut, et non une référence directe à celui-ci. Cela permet de supprimer un attribut dont le nom est entreposé dans une variable, par exemple.
- Si l'attribut que l'on tente de supprimer avec delattr n'existe pas dans l'objet, une exception AttributeError sera levée. Cela signifie qu'il est souvent judicieux de vérifier au préalable l'existence de l'attribut à l'aide de la fonction hasattr, afin d'éviter les erreurs d'exécution inutiles ou non gérées.
- La fonction delattr ne fonctionne que sur des objets dont les attributs sont accessibles et modifiables. Par exemple, si l'objet utilise le mécanisme des propriétés (@property) ou est verrouillé avec des méthodes spéciales comme __slots__, delattr peut ne pas fonctionner comme prévu ou même échouer.
- Une utilisation courante de delattr peut se produire dans des programmes manipulant dynamiquement des objets, comme dans des systèmes de plugiciels, de configurations, ou de gestion de métadonnées. Cela permet de retirer certains comportements ou données d'un objet selon le contexte ou les besoins de l'utilisateur.
- L'appel à delattr a le même effet que l'utilisation directe du mot clef del sur un attribut, c'est-à-dire del objet.attribut. Toutefois, delattr est préférable dans les cas où le nom de l'attribut n'est pas connu à l'avance ou est déterminé dynamiquement à l'exécution.
- Il faut aussi noter que delattr n'agit que sur les attributs d'instance et non sur les méthodes ou attributs de classe si ceux-ci ne sont pas redéfinis dans l'instance. Cela veut dire qu'il est impossible de supprimer une méthode d'une classe à l'aide de delattr sur une instance si cette méthode n'a pas été modifiée dans l'objet lui-même.
- La fonction delattr fait partie des fonctions intégrées (built-in) de Python, ce qui signifie qu'elle est disponible sans avoir besoin d'importer de module. Elle s'intègre donc naturellement dans les scripts Python pour des manipulations réflexives ou orientées métaprogrammation.
Dernière mise à jour : Mercredi, le 14 septembre 2016