1. Apprendre
  2. /
  3. Cours
  4. /
  5. Écrire des fonctions en Python

Connected

Exercice

Générateur HTML

Vous écrivez un script qui génère du HTML pour une page Web à la volée. Jusqu'ici, vous avez créé deux décorateurs qui ajoutent des balises de gras ou d'italique à toute fonction qui retourne une chaîne de caractères. Vous remarquez toutefois que ces deux décorateurs se ressemblent beaucoup. Plutôt que d'écrire toute une série d'autres décorateurs similaires, vous voulez créer un seul décorateur, html(), qui peut accepter n'importe quelle paire de balises ouvrante et fermante.

def bold(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    msg = func(*args, **kwargs)
    return '<b>{}</b>'.format(msg)
  return wrapper
def italics(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    msg = func(*args, **kwargs)
    return '<i>{}</i>'.format(msg)
  return wrapper

Instructions 1/4

undefined XP
  • 1

    Retournez le décorateur et la fonction décorée aux bons endroits dans le nouveau décorateur html().

  • 2

    Utilisez le décorateur html() pour entourer la valeur de retour de hello() avec les chaînes <b> et </b> (les balises HTML qui signifient « gras »).

  • 3

    Utilisez html() pour entourer la valeur de retour de goodbye() avec les chaînes <i> et </i> (les balises HTML qui signifient « italique »).

  • 4

    Utilisez html() pour envelopper hello_goodbye() dans une DIV, ce qui consiste à ajouter les balises <div> et </div> autour d'une chaîne.