0% ont trouvé ce document utile (0 vote)
5 vues5 pages

Classes Abstraites en Python

Le document explique les décorateurs en Python, qui modifient le comportement des fonctions, et présente les classes abstraites, qui servent de modèles avec des méthodes obligatoires. Il décrit également l'utilisation des classes abstraites pour structurer le code, réduire les erreurs et favoriser le polymorphisme. Enfin, il propose des travaux pratiques et des questions de compréhension pour renforcer l'apprentissage des concepts abordés.

Transféré par

babinguipepinjared96
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues5 pages

Classes Abstraites en Python

Le document explique les décorateurs en Python, qui modifient le comportement des fonctions, et présente les classes abstraites, qui servent de modèles avec des méthodes obligatoires. Il décrit également l'utilisation des classes abstraites pour structurer le code, réduire les erreurs et favoriser le polymorphisme. Enfin, il propose des travaux pratiques et des questions de compréhension pour renforcer l'apprentissage des concepts abordés.

Transféré par

babinguipepinjared96
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Classes abstraites en Python

PARTIE 1 – LES DÉCORATEURS EN PYTHON


1️Qu’est-ce qu’un décorateur ?
Un décorateur est une fonction spéciale qui permet de modifier le comportement d’une autre
fonction ou méthode sans modifier son code.

En Python, un décorateur s’écrit avec le symbole :

@decorateur

2️Exemple simple de décorateur


def mon_decorateur(fonction):
def wrapper():
print("Avant l'exécution")
fonction()
print("Après l'exécution")
return wrapper

@mon_decorateur
def dire_bonjour():
print("Bonjour")

dire_bonjour()

Résultat :

Avant l'exécution
Bonjour
Après l'exécution

Le décorateur encapsule la fonction.

3️Pourquoi Python utilise des décorateurs ?


Ils permettent :

Validation
Sécurité
Journalisation (logs)
Contrôle d’accès
Contraintes techniques

@abstractmethod est un décorateur

PARTIE 2 – CLASSES ABSTRAITES


4️Définition d’une classe abstraite
Une classe abstraite est une classe :

Qui ne peut pas être instanciée


Qui définit des méthodes obligatoires
Qui sert de modèle (contrat)

En Python, on utilise le module abc :

from abc import ABC, abstractmethod

5️Pourquoi utiliser une classe abstraite ?


Avantages
Imposer une structure
Réduire les erreurs
Faciliter la maintenance
Favoriser le polymorphisme
Sécuriser l’architecture

Sans classe abstraite


Chaque développeur peut faire n’importe quoi

6️Structure minimale d’une classe abstraite


from abc import ABC, abstractmethod

class Exemple(ABC):

@abstractmethod
def ma_methode(self):
pass

Toute classe qui hérite de Exemple doit implémenter ma_methode .

PARTIE 3 – EXEMPLE GUIDÉ


7️Exemple : Système de paiement
Objectif
Forcer tous les moyens de paiement à implémenter payer() .

Classe abstraite

from abc import ABC, abstractmethod

class MoyenPaiement(ABC):

@abstractmethod
def payer(self, montant):
pass

Classes concrètes

class CarteBancaire(MoyenPaiement):
def payer(self, montant):
return f"Paiement de {montant} effectué par carte bancaire"

class MobileMoney(MoyenPaiement):
def payer(self, montant):
return f"Paiement de {montant} effectué via Mobile Money"

Utilisation

paiements = [
CarteBancaire(),
MobileMoney()
]

for p in paiements:
print([Link](100))
PARTIE 4 – TRAVAUX PRATIQUES (TP)
TP 1 – Formes géométriques (guidé)
Énoncé
1. Crée une classe abstraite Forme
2. Méthode abstraite calculer_aire
3. Implémente :
Rectangle
Triangle

Aide
Rectangle → longueur × largeur
Triangle → (base × hauteur) / 2

TP 2 – Employés (semi-guidé)
Énoncé
1. Classe abstraite Employe
2. Méthode abstraite calculer_salaire
3. Classes :
EmployeFixe
EmployeHoraire

Objectif
Calculer correctement les salaires selon le type d’employé.

TP 3 – Système de notifications (libre)


Énoncé
Créer un système de notification avec :

Notification (classe abstraite)


Méthode envoyer(message)

Implémentations :
Email
SMS
WhatsApp

PARTIE 5 – QUESTIONS DE COMPRÉHENSION


1. Pourquoi ne peut-on pas instancier une classe abstraite ?
2. À quoi sert @abstractmethod ?
3. Quelle erreur apparaît si une méthode abstraite n’est pas implémentée ?
4. Quelle différence entre classe abstraite et classe normale ?

PARTIE 6 – EXERCICE BONUS (AVANCÉ)


Défi
Créer un plugin system avec :

Classe abstraite Plugin


Méthode executer()
Plugins :
Export PDF
Export Excel
Export JSON

Conclusion
Une classe abstraite permet de forcer une architecture propre, tandis que les décorateurs
permettent de contrôler le comportement du code.

Vous aimerez peut-être aussi