Sobes.tech
Middle

Quelles tâches avez-vous résolues avec vos décorateurs en Python?

sobes.tech IA

Réponse de l'IA

En Python, j’utilisais des décorateurs pour résoudre diverses tâches liées à l’extension des fonctionnalités des fonctions sans modifier leur code. Par exemple :

  • Journalisation des appels de fonctions — pour enregistrer automatiquement les paramètres d’entrée et les résultats.
  • Mise en cache des résultats — pour optimiser les appels répétés avec les mêmes arguments.
  • Vérification des droits d’accès — dans les applications web pour limiter l’accès à certaines fonctions.
  • Mesure du temps d’exécution — pour le profilage et l’optimisation du code.

Exemple d’un décorateur simple pour la journalisation :

import functools

def log_calls(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        print(f"Appel de {func.__name__} avec args={args}, kwargs={kwargs}")
        result = func(*args, **kwargs)
        print(f"{func.__name__} a retourné {result}")
        return result
    return wrapper

@log_calls
def add(a, b):
    return a + b

add(2, 3)

Cette approche permet d’écrire un code plus propre et maintenable, en séparant la logique auxiliaire de la logique principale.