Ajoutez des étiquettes à vos fonctions
Étiqueter un élément signifie lui associer une ou plusieurs chaînes de caractères qui servent d'étiquettes. Par exemple, on étiquette souvent des courriels ou des photos afin de pouvoir les rechercher 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 pourriez utiliser ces étiquettes pour plusieurs choses :
- Ajouter de l'information sur les personnes qui ont travaillé sur la fonction, afin qu'un utilisateur sache à qui s'adresser en cas de problème.
- Indiquer que certaines fonctions sont « expérimentales » pour que les utilisateurs sachent que les entrées et les sorties pourraient changer dans le futur.
- Marquer les fonctions que vous prévoyez retirer dans une version ultérieure du code.
- Etc.
Cette activité fait partie du cours
Écrire des fonctions en Python
Instructions de l’exercice
- Définissez un nouveau décorateur, nommé
decorator(), à retourner. - Assurez-vous que la fonction décorée conserve ses métadonnées.
- Appelez la fonction en cours de décoration et retournez son résultat.
- Retournez le nouveau décorateur.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)