HTML generátor
Píšeš skript, který dynamicky generuje HTML pro webovou stránku. Zatím jsi napsal/a dva dekorátory, které obalí návratovou hodnotu libovolné funkce vracející řetězec tučnými nebo kurzívními tagy. Všimneš si ale, že tyto dva dekorátory jsou si velmi podobné. Místo psaní dalších podobně vypadajících dekorátorů chceš vytvořit jeden universální dekorátor html(), který přijme libovolný pár otevíracího a zavíracího tagu.
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
Toto cvičení je součástí kurzu
Writing Functions in Python
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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 ____