Méthodes Dunder en Python
Cours
Fondamentaux
Découvrez les méthodes dunder en Python, des méthodes spéciales encadrées par des doubles tirets bas (__), qui permettent de personnaliser le comportement des objets dans différents contextes. Apprenez comment utiliser les méthodes dunder pour l’initialisation, la représentation, les opérations mathématiques, les comparaisons, les conteneurs, la gestion des attributs, l’appel d’objet comme une fonction, la gestion du contexte, et d’autres cas d’utilisation.
Les méthodes dunder en Python
Les méthodes dunder sont encadrées par des doubles tirets bas (__) et sont appelées automatiquement par Python dans certaines circonstances.
1. Initialisation et destruction
init(self, …)
- Appelée lors de la création d’une instance.
- Initialise les attributs de l’objet.
del(self)
- Appelée lorsque l’objet est sur le point d’être détruit.
- Utile pour le nettoyage de ressources.
2. Représentation des objets
str(self)
- Retourne une représentation lisible de l’objet.
- Utilisée par
str()
etprint()
.
repr(self)
- Retourne une représentation “officielle” de l’objet.
- Utilisée par
repr()
et dans l’interpréteur interactif.
3. Opérations mathématiques
add(self, other), sub(self, other), mul(self, other), truediv(self, other)
- Définissent les opérations +, -, *, / respectivement.
floordiv(self, other), mod(self, other), pow(self, other)
- Définissent les opérations //, %, ** respectivement.
4. Comparaisons
eq(self, other), ne(self, other)
- Définissent == et != respectivement.
lt(self, other), le(self, other), gt(self, other), ge(self, other)
- Définissent <, <=, >, >= respectivement.
5. Conteneurs et séquences
len(self)
- Retourne la longueur de l’objet.
- Utilisée par la fonction
len()
.
getitem(self, key)
- Permet l’accès par index ou clé.
- Utilisée pour l’indexation obj[key].
setitem(self, key, value)
- Permet l’assignation par index ou clé.
iter(self)
- Retourne un itérateur pour l’objet.
6. Gestion des attributs
getattr(self, name)
- Appelée lorsqu’un attribut non trouvé est accédé.
setattr(self, name, value)
- Appelée lors de l’assignation d’un attribut.
delattr(self, name)
- Appelée lors de la suppression d’un attribut.
7. Appel de l’objet comme une fonction
call(self, …)
- Permet d’appeler l’objet comme une fonction.
8. Gestion du contexte
enter(self), exit(self, exc_type, exc_value, traceback)
- Utilisées pour le gestionnaire de contexte (with statement).
9. Autres méthodes dunder utiles
- bool(self): Définit le comportement pour bool().
- hash(self): Permet à l’objet d’être utilisé comme clé de dictionnaire.
- format(self, format_spec): Personnalise le formatage de chaînes.
Cette liste, bien que non exhaustive, couvre la plupart des méthodes dunder couramment utilisées en Python. Chacune de ces méthodes permet de personnaliser le comportement des objets dans différents contextes, rendant le langage extrêmement flexible et puissant.