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