Inizia subitoInizia gratis

Generatore HTML

Stai scrivendo uno script che genera al volo l'HTML per una pagina web. Finora hai scritto due decorator che aggiungono i tag grassetto o corsivo a qualsiasi funzione che restituisce una stringa. Noti però che questi due decorator sono molto simili. Invece di scrivere tanti altri decorator simili, vuoi creare un unico decorator, html(), che possa accettare qualsiasi coppia di tag di apertura e chiusura.

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

Questo esercizio fa parte del corso

Scrivere funzioni in Python

Visualizza corso

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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 ____
Modifica ed esegui il codice