Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Decorateur de log
Le logging est essentiel en production : savoir quelle fonction a été appelée, avec quels arguments, et quand. Un décorateur de log automatise ça sans toucher au code des fonctions existantes. C'est exactement comme ça que fonctionnent les décorateurs de Django (@login_required) et Flask (@app.route).
Le principe : ta fonction logger prend une fonction en paramètre, crée un wrapper qui enregistre l'appel puis exécute la fonction originale, et retourne ce wrapper.
Écris un décorateur logger qui enregistre les appels dans une liste logger.appels. Chaque entrée est un dict avec les clés fonction (nom), args (tuple) et kwargs (dict). Le décorateur ne modifie pas le résultat de la fonction décorée.
Exemple : logger.appels = [] @logger def add(a, b): return a + b add(1, 2) logger.appels donne [{'fonction': 'add', 'args': (1, 2), 'kwargs': {}}]