Maîtrisez la programmation objet en Python
🐍 Maîtrisez la programmation objet en Python
Section titled “🐍 Maîtrisez la programmation objet en Python”📖 Introduction
Section titled “📖 Introduction”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.
🧠 Théorie générale
Section titled “🧠 Théorie générale”Qu’est-ce qu’une classe et un objet ?
Section titled “Qu’est-ce qu’une classe et un objet ?”- 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()Encapsulation
Section titled “Encapsulation”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} €")Héritage
Section titled “Héritage”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()Polymorphisme
Section titled “Polymorphisme”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())Méthodes spéciales (dunder methods)
Section titled “Méthodes spéciales (dunder methods)”__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.
⚖️ Bonnes pratiques
Section titled “⚖️ Bonnes pratiques”- 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.
📋 Évaluation des connaissances
Section titled “📋 Évaluation des connaissances”À quoi sert cette évaluation ?
Section titled “À quoi sert cette évaluation ?”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 ! 🚀
📝 Exercices pratiques
Section titled “📝 Exercices pratiques”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()