CommencezCommencez gratuitement

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

Voir le cours

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)
Modifier et exécuter le code