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.