Décorateurs
Apprenez à utiliser les décorateurs pour modifier ou étendre des fonctions
Décorateurs est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 5. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 5 leçons au total.
Introduction aux décorateurs
Les décorateurs sont une fonctionnalité puissante de Python qui vous permet de modifier le comportement de fonctions ou de méthodes. Ils sont souvent utilisés pour ajouter des fonctionnalités à des fonctions sans modifier leur code.
Dans cette leçon, vous découvrirez ce que sont les décorateurs, comment les utiliser et comment créer vos propres décorateurs.

Qu'est-ce qu'un décorateur ?
Un décorateur est une fonction qui prend une autre fonction en entrée et renvoie une nouvelle fonction dotée de fonctionnalités supplémentaires. Il est souvent utilisé avec la syntaxe @decorator_name.
# Basic example of a decorator
def decorator(func):
def wrapper():
print("Before the function call")
func()
print("After the function call")
return wrapper
@decorator
def say_hello():
print("Hello!")
say_hello()Fonctionnement des décorateurs
Lorsque vous utilisez un décorateur, Python remplace la fonction d'origine par la fonction wrapper renvoyée par le décorateur.
# How decorators work
def decorator(func):
def wrapper():
print("Wrapper called")
func()
return wrapper
@decorator
def greet():
print("Greetings!")
print(greet.__name__) # Outputs: wrapper
greet()Utiliser des décorateurs avec des arguments
Les décorateurs peuvent fonctionner avec des fonctions qui prennent des arguments en utilisant *args et **kwargs dans la fonction wrapper :
# Decorator for functions with arguments
def decorator(func):
def wrapper(*args, **kwargs):
print(f"Arguments: {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper
@decorator
def add(a, b):
return a + b
print(add(3, 5))Enchaîner plusieurs décorateurs
Vous pouvez utiliser plusieurs décorateurs sur une même fonction. Ils sont appliqués dans l'ordre où ils apparaissent, de haut en bas :
# Chaining multiple decorators
def decorator1(func):
def wrapper():
print("Decorator 1")
func()
return wrapper
def decorator2(func):
def wrapper():
print("Decorator 2")
func()
return wrapper
@decorator1
@decorator2
def greet():
print("Hello!")
greet()Création de décorateurs paramétrés
Les décorateurs paramétrés acceptent des arguments et permettent une fonctionnalité plus flexible :
# Parameterized decorator
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
func(*args, **kwargs)
return wrapper
return decorator
@repeat(3)
def say_hello():
print("Hello!")
say_hello()Cas d’utilisation courants des décorateurs
Les décorateurs sont couramment utilisés pour :
- Consigner les appels de fonctions et leurs arguments.
- Mesurer le temps d’exécution des fonctions.
- Contrôler les accès, par exemple en vérifiant les autorisations des utilisateurs.
- Mettre en cache les résultats afin d’améliorer les performances.
Décorateurs intégrés à Python
Python fournit certains décorateurs intégrés, notamment :
@staticmethod: définit une méthode statique.@classmethod: définit une méthode de classe.@property: définit une méthode de propriété.
Erreurs courantes avec les décorateurs
Voici quelques erreurs à éviter :
- Ne pas conserver le nom et la chaîne de documentation de la fonction d'origine (utilisez
functools.wraps). - Utiliser des décorateurs inutilement pour des tâches simples.
- Oublier de gérer les arguments dans la fonction wrapper.
Qu’avons-nous appris ?
Dans cette leçon, vous avez appris :
- Ce que sont les décorateurs et comment ils fonctionnent en Python.
- Comment créer et utiliser des décorateurs simples, paramétrés et chaînés.
- Les cas d’utilisation courants et les décorateurs intégrés de Python.
Excellent travail ! Passons au sujet suivant.

Apprends Python avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 53
- Leçons
- 225
Questions Fréquemment Posées
La leçon « Décorateurs » est-elle gratuite ?
Oui — le texte complet de « Décorateurs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 5 leçons au total.
Qu'est-ce que j'apprendrai dans « Décorateurs » ?
Apprenez à utiliser les décorateurs pour modifier ou étendre des fonctions Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 5.
Combien de temps prend la leçon « Décorateurs » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Décorateurs
- Générateurs
- Gestionnaires de contexte (instructions with)
- Compréhensions (listes, ensembles et dictionnaires)
- Itérateurs et objets itérables