HTML-Generator
Du schreibst ein Skript, das HTML für eine Webseite dynamisch erzeugt. Bisher hast du zwei Decorators geschrieben, die beliebigen Funktionen, die einen String zurückgeben, Fett- bzw. Kursiv-Tags hinzufügen. Dir fällt jedoch auf, dass sich diese beiden Decorators sehr ähnlich sind. Anstatt eine ganze Reihe ähnlich aussehender Decorators zu schreiben, willst du einen einzigen html()-Decorator erstellen, der jedes beliebige Paar aus öffnenden und schließenden Tags annehmen 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
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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 ____