Exercices de récap de la POO Python — Mets en code ce que tu as appris
Quatre exercices qui rassemblent ce que tu as appris dans la POO Python — définitions de classes avec méthodes spéciales, héritage, encapsulation et polymorphisme. Écris du code, exécute-le et révise tout le chapitre d'un coup.
Problème 1 : concevoir une classe Point avec des méthodes spéciales
Construis une classe Point qui représente une coordonnée 2D. Tu vas initialiser les attributs dans __init__, définir ce que fait + entre deux points avec __add__, et façonner ce qu'affiche print() avec __str__ — trois méthodes spéciales qui travaillent ensemble.
Problème 2 : étendre un compte bancaire avec l'héritage et super()
Hérite d'une classe parente BankAccount pour construire un SavingsAccount qui peut appliquer des intérêts. Le motif est l'héritage classique : appelle l'initialiseur du parent avec super().__init__(...), puis ajoute par-dessus les attributs spécifiques à l'enfant.
Problème 3 : valider une température avec @property
Écris une classe Celsius qui rejette les affectations en dessous du zéro absolu (-273.15). Tu vas utiliser @property et un @value.setter pour insérer la validation directement dans l'affectation d'attribut — c'est le motif d'encapsulation classique.
t.value = X a l'air d'une simple affectation, mais passe par le setter, qui valide la valeur d'abord. Hors plage → ValueError, dans la plage → stockage dans _value.Problème 4 : utiliser le polymorphisme pour calculer les aires en une boucle
Donne à deux classes différentes une méthode du même nom (area()), mets leurs instances dans une liste, et traite-les avec une seule boucle for. L'appelant ne se soucie pas de quelle classe est laquelle — c'est le polymorphisme en résumé.
shape.area() sur chaque élément de la liste, la méthode correspondant au type réel de l'élément est choisie automatiquement.Bravo d'avoir tenu jusqu'ici
Cela conclut la POO Python. Tu as couvert la conception de classes et d'instances, les méthodes spéciales comme __init__ / __add__ / __str__, l'héritage avec super(), l'encapsulation avec @property, le polymorphisme, l'instruction with et les annotations de type — à peu près tous les outils dont tu as besoin pour regrouper données et comportement dans un seul type. Tu peux maintenant définir tes propres types, leur attacher des méthodes et traiter plusieurs types via une interface partagée.
Le chapitre suivant, Python Intermédiaire, va au-delà d'un seul fichier : organiser modules et packages, et utiliser la bibliothèque standard — datetime, os, re, json, collections, dataclasses, asyncio et plus encore — pour construire le genre de traitements que tu rencontreras réellement en production.