Sommaire

Méthodes spéciales Programmation orientée objet:méthodes spéciales

Python ne permet pas la surcharge de fonction et la stratégie pour pallier ce manque avec les paramètres par défaut a été présentée. Il existe encore un cas de figure où la surcharge est utile. Il s’agit de la surcharge d’opérateur.

La surcharge d’opérateur consiste à réécrire le comportement d’un opérateur (arithmétique par exemple) pour l’adapter à la structure d’une classe définie par l’utilisateur. À titre d’exemple, il y a peu de chance que l’opérateur + puisse être utilisé directement entre deux instances d’une classe définie par l’utilisateur. Il est donc nécessaire de définir le comportement de l’opérateur d’addition lorsqu’il est appelé sur de tels objets.

En Python, pour réaliser cette opération, il existe un ensemble de méthodes dites spéciales. Pour être tout à fait exact, les méthodes spéciales ne servent pas uniquement à surcharger des opérateurs, elles peuvent être utilisées pour redéfinir le comportement des fonctions.

Par exemple, lorsque vous tapez dans une console IPython (après l’exécution de votre script) :

In [2]: t1

vous obtenez en sortie :

Out[2]: <__main__.Telephone ...