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 Decorator html() 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 ____