La Programmation Orientée Objet (POO) en Python
La programmation orientée objet (POO) est un paradigme de programmation qui organise le code
autour des objets. Un objet est une entité qui regroupe à la fois des données (appelées attributs) et
des comportements (appelés méthodes). Python est un langage orienté objet, ce qui veut dire que
presque tout en Python est un objet (nombres, chaînes, listes, etc.).
1. Classe et Objet
Une classe est comme un plan (ou un moule) qui décrit comment créer des objets. Un objet est une
instance d'une classe, c'est-à-dire une réalisation concrète de ce plan.
class Personne:
def __init__(self, nom, age):
[Link] = nom
[Link] = age
# Création d'un objet
p1 = Personne("Alice", 25)
print([Link]) # Alice
print([Link]) # 25
2. Attributs et Méthodes
Les attributs sont des variables propres à une classe ou un objet. Les méthodes sont des fonctions
définies à l'intérieur d'une classe et qui décrivent des comportements.
class Voiture:
def __init__(self, marque, modele):
[Link] = marque
[Link] = modele
def demarrer(self):
print(f"La voiture {[Link]} {[Link]} démarre.")
v1 = Voiture("Toyota", "Corolla")
[Link]()
3. Encapsulation
L'encapsulation consiste à protéger les données d'un objet en limitant leur accès direct. On utilise
des attributs privés (avec un underscore `_`) et des méthodes pour contrôler l'accès.
class CompteBancaire:
def __init__(self, solde):
self.__solde = solde # attribut privé
def deposer(self, montant):
self.__solde += montant
def retirer(self, montant):
if montant <= self.__solde:
self.__solde -= montant
else:
print("Fonds insuffisants")
def get_solde(self):
return self.__solde
c = CompteBancaire(1000)
[Link](500)
print(c.get_solde()) # 1500
4. Héritage
L'héritage permet de créer une nouvelle classe (classe fille) basée sur une classe existante (classe
mère). Cela favorise la réutilisation du code.
class Animal:
def parler(self):
print("Je suis un animal.")
class Chien(Animal):
def parler(self):
print("J'aboie !")
a = Animal()
[Link]()
c = Chien()
[Link]()
5. Polymorphisme
Le polymorphisme signifie qu'une même méthode peut avoir des comportements différents selon
l'objet qui l'appelle.
class Chat(Animal):
def parler(self):
print("Je miaule !")
animaux = [Chien(), Chat(), Animal()]
for animal in animaux:
[Link]()
6. Abstraction
L'abstraction consiste à définir des classes ou méthodes sans implémentation concrète, qui doivent
être définies par les classes filles. En Python, on utilise le module 'abc'.
from abc import ABC, abstractmethod
class Forme(ABC):
@abstractmethod
def aire(self):
pass
class Cercle(Forme):
def __init__(self, rayon):
[Link] = rayon
def aire(self):
return 3.14 * [Link] ** 2
c = Cercle(5)
print([Link]())
Conclusion
La POO en Python est un outil puissant qui permet de structurer le code de manière claire,
réutilisable et évolutive. En comprenant les concepts de classes, objets, encapsulation, héritage,
polymorphisme et abstraction, vous pouvez construire des programmes robustes et maintenables.