Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Écriture de Décorateurs Paramétrés | Maîtriser les itérateurs et les décorateurs Python
Concepts de Programmation Fonctionnelle en Python

bookÉcriture de Décorateurs Paramétrés

Glissez pour afficher le menu

Lorsque vous souhaitez que votre décorateur se comporte différemment selon certains paramètres, il est nécessaire de créer un décorateur paramétré. Contrairement aux décorateurs classiques, qui ne prennent que la fonction comme argument, les décorateurs paramétrés acceptent leurs propres arguments, ce qui permet de contrôler dynamiquement leur comportement. Cela est particulièrement utile lorsque vous souhaitez réutiliser un décorateur dans plusieurs situations avec des configurations différentes.

Structure d’un décorateur paramétré :

  1. La fonction extérieure accepte les arguments du décorateur ;
  2. La fonction intermédiaire est le décorateur proprement dit qui prend la fonction à décorer ;
  3. La fonction intérieure encapsule et contrôle l’exécution de la fonction d’origine.

Cette approche en couches permet de transmettre des arguments au décorateur, qui seront alors disponibles lors de l’appel de la fonction décorée.

12345678910111213141516171819202122
# Outer function: accepts the decorator argument 'times' def repeat(times): # The actual decorator that takes the function to be decorated def decorator(func): # Inner function: wraps and controls the execution of 'func' def wrapper(*args, **kwargs): result = None # Call the original function 'times' times for _ in range(times): result = func(*args, **kwargs) return result # Return the wrapper to replace the original function return wrapper # Return the decorator function return decorator # Apply the repeat decorator @repeat(3) def say_hello(): print("Hello!") say_hello()
copy

1. En quoi un décorateur paramétré diffère-t-il d’un décorateur classique ?

2. Pourquoi voudriez-vous passer des arguments à un décorateur ?

question mark

En quoi un décorateur paramétré diffère-t-il d’un décorateur classique ?

Sélectionnez la réponse correcte

question mark

Pourquoi voudriez-vous passer des arguments à un décorateur ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 4. Chapitre 3
some-alt