Image de l'article Programmation orientée objet en Python : surcharge d'opérateurs en Python

6.9. Programmation orientée objet en Python : surcharge d'opérateurs en Python

La programmation orientée objet (POO) est un paradigme de programmation basé sur le concept d'« objets », qui peut contenir des données et du code : des données sous forme de champs (également appelés attributs ou propriétés) et du code, au format forme de procédures (également appelées méthodes). La surcharge des opérateurs est un aspect important de la POO. En Python, la surcharge d'opérateurs fait référence à la possibilité de modifier le comportement d'un opérateur (tel que +, -, *, /) afin qu'il fonctionne différemment avec différents types de classes.

En Python, la surcharge d'opérateurs est réalisée en définissant une méthode spéciale dans notre classe. Ces méthodes spéciales commencent et se terminent par deux traits de soulignement (« __ »). Par exemple, pour surcharger l'opérateur '+', nous devons définir une méthode spéciale appelée '__add__' dans notre classe.

Par exemple, considérons une classe « Complexe » qui représente des nombres complexes. Nous aimerions pouvoir additionner deux nombres complexes en utilisant l'opérateur '+'. Pour ce faire, nous devons surcharger l'opérateur '+' en définissant une méthode '__add__' dans notre classe.

complexe de classe : def __init__(soi, réel, imag) : self.real = réel soi.imag = image def __add__(soi, autre) : retourner Complexe (self.real + other.real, self.imag + other.imag)

Maintenant, nous pouvons additionner deux nombres complexes en utilisant l'opérateur '+' :

c1 = Complexe(1, 2) c2 = Complexe(2, 3) c3 = c1 + c2 # Cela appelle 'c1.__add__(c2)'

De même, nous pouvons surcharger d'autres opérateurs tels que '-', '*', '/', '==', '!=', '>', '<', '>=', '< = ', etc., définissant les méthodes spéciales correspondantes dans notre classe.

Il convient de mentionner que la surcharge des opérateurs peut rendre notre code plus propre et plus facile à lire, mais elle peut également créer de la confusion si elle n'est pas utilisée correctement, car elle peut modifier le comportement par défaut des opérateurs. Par conséquent, il doit être utilisé avec prudence.

Python permet également la surcharge d'opérateurs unaires (tels que - et ~) et d'opérateurs d'affectation augmentés (tels que += et *=). Cela se fait en définissant des méthodes spéciales telles que '__neg__', '__invert__', '__iadd__', '__imul__', etc., dans notre classe.

De plus, Python prend en charge la surcharge des opérateurs d'accès aux éléments (tels que [], (), .), des opérateurs d'appel (tels que f()), des opérateurs de contexte (tels que with), et bien plus encore. Cela se fait en définissant des méthodes spéciales telles que '__getitem__', '__setitem__', '__call__', '__enter__', '__exit__', etc., dans notre classe.

En résumé, la surcharge d'opérateurs est une fonctionnalité puissante de la programmation orientée objet en Python qui nous permet de modifier le comportement par défaut des opérateurs afin qu'ils fonctionnent différemment avec différents types de classes. Cela peut rendre notre code plus propre et plus facile à lire, mais cela peut également prêter à confusion s'il n'est pas utilisé correctement.

Répondez maintenant à l’exercice sur le contenu :

Quel est le rôle de la surcharge d’opérateurs dans la programmation orientée objet en Python ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Programmation orientée objet en Python : composition en Python

Page suivante de lebook gratuit :

29Programmation orientée objet en Python : composition en Python

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte