ComenzarEmpieza gratis

HTML Generador

Estás escribiendo un script que genera HTML para una página web sobre la marcha. Hasta ahora, has escrito dos decoradores que añadirán etiquetas de negrita o cursiva a cualquier función que devuelva una cadena. Sin embargo, te darás cuenta de que estos dos decoradores se parecen mucho. En lugar de escribir un montón de otros decoradores de aspecto similar, quieres crear un decorador, html(), que pueda tomar cualquier par de etiquetas de apertura y cierre.

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

Este ejercicio forma parte del curso

Escribir funciones en Python

Ver curso

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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 ____
Editar y ejecutar código