HTML Gerador
Você está escrevendo um script que gera HTML para uma página da Web em tempo real. Até agora, você escreveu dois decoradores que adicionarão tags em negrito ou itálico a qualquer função que retorne uma string. No entanto, você percebe que esses dois decoradores são muito semelhantes. Em vez de escrever vários outros decoradores com aparência semelhante, você deseja criar um decorador, html()
, que pode receber qualquer par de tags de abertura e fechamento.
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 exercício faz parte do curso
Como escrever funções em Python
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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 ____