Generator HTML
Scrii un script care generează HTML pentru o pagină web din mers. Până acum, ai scris doi decoratori care adaugă taguri de bold sau italice oricărei funcții ce returnează un string. Observi însă că acești doi decoratori arată foarte similar. În loc să scrii o serie de alți decoratori asemănători, vrei să creezi un singur decorator, html(), care să poată primi orice pereche de taguri de deschidere și de închidere.
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
Acest exercițiu face parte din cursul
Scrierea funcțiilor în Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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 ____