CommencerCommencer gratuitement

HTML Générateur

Vous écrivez un script qui génère à la volée HTML pour une page web. Jusqu'à présent, vous avez écrit deux décorateurs qui ajouteront des balises en gras ou en italique à toute fonction renvoyant une chaîne de caractères. Vous remarquerez cependant que ces deux décorateurs se ressemblent beaucoup. Au lieu d'écrire un tas d'autres décorateurs similaires, vous voulez créer un décorateur, html(), qui peut prendre n'importe quelle paire de balises d'ouverture et de fermeture.

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

Cet exercice fait partie du cours

Écrire des fonctions en Python

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

def html(open_tag, close_tag):
  def decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
      msg = func(*args, **kwargs)
      return '{}{}{}'.format(open_tag, msg, close_tag)
    # Return the decorated function
    return ____
  # Return the decorator
  return ____
Modifier et exécuter le code