7.9. Classes et objets en Python : surcharge d'opérateurs

Página 45

7.9. Classes et objets Python : surcharge d'opérateurs

Python, étant un langage de programmation orienté objet, utilise des classes et des objets pour structurer son code. Une classe est un modèle pour créer des objets, tandis qu'un objet est une instance d'une classe. Dans ce chapitre, nous aborderons la surcharge d'opérateurs en Python, un concept avancé qui permet aux opérateurs d'avoir des significations différentes selon le contexte.

Surcharge des opérateurs

La surcharge d'opérateurs est une fonctionnalité des langages de programmation orientés objet qui permet aux opérateurs tels que +, -, *, /, etc., d'être utilisés de différentes manières en fonction des types de données des opérandes. En Python, cela se fait via des méthodes spéciales définies dans les classes. Ces méthodes commencent et se terminent par deux traits de soulignement (__).

Exemple de surcharge d'opérateur

Considérons la classe suivante appelée « Complexe » qui représente un nombre complexe :

complexe de classe : def __init__(soi, réel, image) : self.real = réel soi.imag = image

Nous pouvons créer deux objets de cette classe et essayer de les ajouter en utilisant l'opérateur '+'. Cependant, Python ne sait pas comment ajouter deux objets 'Complexe' et renverra une erreur.

Pour résoudre ce problème, nous pouvons définir une méthode spéciale appelée '__add__' dans la classe 'Complex' :

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

Maintenant, lorsque nous essaierons d'ajouter deux objets 'Complexe', Python appellera la méthode '__add__' que nous avons définie, permettant à l'opération d'être effectuée correctement.

En savoir plus sur les méthodes spéciales

Il existe de nombreuses autres méthodes spéciales que nous pouvons définir dans nos classes pour surcharger d'autres opérateurs. Quelques exemples incluent '__sub__' pour la soustraction, '__mul__' pour la multiplication, '__truediv__' pour la division, '__mod__' pour le module, etc.

De plus, nous pouvons également surcharger les opérateurs de comparaison tels que '==', '!=', '<', '>', '<=' et '>='. Pour cela, nous utilisons des méthodes spéciales telles que '__eq__', '__ne__', '__lt__', '__gt__', '__le__' et '__ge__', respectivement.

Considérations finales

La surcharge des opérateurs est une fonctionnalité puissante qui permet à nos classes de se comporter de manière plus naturelle et intuitive. Cependant, il doit être utilisé avec précaution car il peut rendre le code plus difficile à comprendre s'il est mal utilisé.

De plus, tous les opérateurs ne peuvent pas être surchargés en Python. Certains opérateurs, comme « est », « pas » et « et », ont des comportements fixes qui ne peuvent pas être modifiés.

En résumé, la surcharge d'opérateurs est un outil utile à avoir dans votre arsenal de programmation Python, mais comme tous les outils, il doit être utilisé de manière appropriée et responsable.

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

Qu’est-ce que la surcharge d’opérateurs en Python et comment est-elle implémentée ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

467.10. Classes et objets en Python : classes abstraites et interfaces

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