Marquez vos fonctions
Étiqueter quelque chose signifie que vous avez donné à cette chose une ou plusieurs chaînes de caractères qui agissent comme des étiquettes. Par exemple, nous marquons souvent des courriels ou des photos pour pouvoir les retrouver plus tard. Vous avez décidé d'écrire un décorateur qui vous permettra d'étiqueter vos fonctions avec une liste arbitraire d'étiquettes. Vous pouvez utiliser ces étiquettes pour de nombreuses choses :
- Ajouter des informations sur les personnes qui ont travaillé sur la fonction, afin qu'un utilisateur puisse savoir à qui s'adresser s'il rencontre des difficultés lors de l'utilisation de la fonction.
- L'étiquetage des fonctions comme "expérimentales" pour que les utilisateurs sachent que les entrées et les sorties peuvent changer à l'avenir.
- Marquer les fonctions que vous prévoyez de supprimer dans une version future du code.
- Etc.
Cet exercice fait partie du cours
Écrire des fonctions en Python
Instructions
- Définissez un nouveau décorateur, nommé
decorator()
, pour renvoyer. - Veillez à ce que la fonction décorée conserve ses métadonnées.
- Appelez la fonction décorée et renvoyez le résultat.
- Renvoyez le nouveau décorateur.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def tag(*tags):
# Define a new decorator, named "decorator", to return
def ____(____):
# Ensure the decorated function keeps its metadata
@____(____)
def wrapper(*args, **kwargs):
# Call the function being decorated and return the result
return ____(____, ____)
wrapper.tags = tags
return wrapper
# Return the new decorator
return ____
@tag('test', 'this is a tag')
def foo():
pass
print(foo.tags)