Skip to content

Maîtrisez la programmation objet en Python

🐍 Maîtrisez la programmation objet en Python

Section titled “🐍 Maîtrisez la programmation objet en Python”

La programmation orientée objet (POO) est une approche qui permet d’organiser le code autour d’objets, comme dans la vie réelle.
Dans le monde professionnel, la POO est utilisée pour :

  • Gérer des utilisateurs et leurs droits dans une application web.
  • Modéliser des produits et commandes dans un site e-commerce.
  • Automatiser des services système (DevOps).
  • Créer des jeux vidéo avec des personnages et des véhicules.

  • Classe : plan ou modèle qui définit des attributs et des méthodes.
  • Objet : instance concrète d’une classe.

Exemple :

class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
def se_presenter(self):
print(f"Bonjour, je m'appelle {self.nom} et j'ai {self.age} ans.")
moi = Personne("Alice", 30)
moi.se_presenter()

Protéger les données internes d’une classe pour éviter les accès non contrôlés.
Exemple avec un compte bancaire :

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 afficher_solde(self):
print(f"Solde : {self.__solde} €")

Permet de réutiliser du code en créant des classes enfants.
Exemple :

class Vehicule:
def __init__(self, marque):
self.marque = marque
def se_deplacer(self):
print(f"Le véhicule {self.marque} se déplace.")
class Voiture(Vehicule):
def __init__(self, marque, modele):
super().__init__(marque)
self.modele = modele
def se_deplacer(self):
print(f"La voiture {self.marque} {self.modele} roule sur la route.")
ma_voiture = Voiture("Tesla", "Model S")
ma_voiture.se_deplacer()

Utiliser une même interface pour différents objets :

class Animal:
def parler(self):
pass
class Chien(Animal):
def parler(self):
print("Wouf!")
class Chat(Animal):
def parler(self):
print("Miaou!")
def faire_parler(animal):
animal.parler()
faire_parler(Chien())
faire_parler(Chat())

  • __init__ : constructeur.
  • __str__ : représentation lisible.
  • __eq__ : comparaison.
  • __len__ : taille d’un objet.
  • __getitem__ : accès par index.
  • __call__ : rendre un objet appelable comme une fonction.

  • Utiliser des noms clairs pour les classes et méthodes.
  • Respecter l’encapsulation pour protéger les données sensibles.
  • Favoriser la réutilisation avec l’héritage.
  • Documenter les classes et méthodes.
  • Tester les comportements avec des cas concrets.

Cette évaluation rapide (3 minutes) va vous permettre de vérifier votre compréhension du sujet traité dans ce guide.

Instructions :

  • 🕒 Temps limité : 3 minutes
  • 🎯 Seuil de réussite : 80%
  • 💡 Les réponses seront expliquées à la fin

À vous de jouer ! 🚀



Exercice 1 : Classe simple

Créez une classe Livre avec des attributs titre et auteur, et une méthode afficher().

Solution :

class Livre:
def __init__(self, titre, auteur):
self.titre = titre
self.auteur = auteur
def afficher(self):
print(f"{self.titre} écrit par {self.auteur}")
livre = Livre("1984", "George Orwell")
livre.afficher()

Exercice 2 : Encapsulation

Créez une classe CompteBancaire avec un attribut privé __solde et des méthodes pour déposer et retirer.

Solution :

class CompteBancaire:
def __init__(self, solde):
self.__solde = solde
def deposer(self, montant):
self.__solde += montant
def retirer(self, montant):
if montant <= self.__solde:
self.__solde -= montant
else:
print("Fonds insuffisants")
def afficher_solde(self):
print(f"Solde : {self.__solde} €")
compte = CompteBancaire(1000)
compte.retirer(200)
compte.afficher_solde()

Exercice 3 : Héritage

Créez une classe Vehicule et une classe Moto qui hérite de Vehicule.

Solution :

class Vehicule:
def __init__(self, marque):
self.marque = marque
def se_deplacer(self):
print(f"Le véhicule {self.marque} se déplace.")
class Moto(Vehicule):
def se_deplacer(self):
print(f"La moto {self.marque} roule sur la route.")
moto = Moto("Yamaha")
moto.se_deplacer()


À propos de l'auteur

Riyad ODJOUADEExpert en cybersécurité & infrastructure

Je partage des guides techniques pratiques sur la cybersécurité, l'administration système et le développement web. Tous les contenus sont basés sur des expérimentations réelles.