HTML Generator
Du schreibst ein Skript, das im laufenden Betrieb HTML für eine Webseite generiert. Bis jetzt hast du zwei Dekoratoren geschrieben, die jeder Funktion, die einen String zurückgibt, fette oder kursive Tags hinzufügen. Du bemerkst jedoch, dass diese beiden Dekorateure sehr ähnlich aussehen. Anstatt einen Haufen ähnlich aussehender Dekoratoren zu schreiben, möchtest du einen einzigen Dekorator, html()
, erstellen, der jedes Paar von öffnenden und schließenden Tags aufnehmen kann.
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
Diese Übung ist Teil des Kurses
Funktionen in Python schreiben
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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 ____