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
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 ____