Contenu du cours
Techniques Python Intermédiaires
Techniques Python Intermédiaires
Exemples Pratiques d'Utilisation des Décorateurs
Les décorateurs en Python sont un outil puissant pour modifier le comportement des fonctions ou des méthodes. Les usages les plus courants sont la mise en veille, la validation du temps et la journalisation.
1. Décorateur de Mise en Veille
Ce décorateur fera attendre la fonction pendant un certain temps spécifié avant de s'exécuter.
import time def sleep_decorator(seconds): def decorator(func): def wrapper(*args, **kwargs): print(f"Sleeping for {seconds} seconds before executing '{func.__name__}'") time.sleep(seconds) return func(*args, **kwargs) return wrapper return decorator @sleep_decorator(2) def my_function(): print("Function executed!") # Usage my_function()
2. Décorateur de Validation
Ce décorateur vérifie si les entrées d'une fonction répondent à certains critères.
def validate_decorator(func): def wrapper(number): if not isinstance(number, int) or number < 0: raise ValueError("Input must be a non-negative integer") return func(number) return wrapper @validate_decorator def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) # Usage print(factorial(5)) # factorial(-1) # This will raise an error
3. Décorateur de Chronométrage
Ce décorateur mesure le temps d'exécution d'une fonction. Nous l'avons déjà utilisé dans le chapitre précédent.
import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"'{func.__name__}' executed in {end_time - start_time} seconds") return result return wrapper @timing_decorator def some_function(): time.sleep(1) # Simulating a task print("Function completed") # Usage some_function()
Le décorateur pour la vérification de connexion utilise des bibliothèques supplémentaires et est utilisé dans le développement de sites web, il est donc plus approprié de considérer ce décorateur dans le contexte de la création de sites web.
Comme nous l'avons dit, les décorateurs sont un sujet complexe en Python et nécessitent parfois plus de pratique pour bien comprendre ce sujet. Vous êtes sur la bonne voie pour développer un esprit de programmeur.
Téléchargez les notes sur le cours. 😉
1. Quel sera le résultat du code suivant ?
2. Quel sera le résultat du code suivant ?
Merci pour vos commentaires !