LoslegenKostenlos loslegen

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

Kurs anzeigen

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 ____
Code bearbeiten und ausführen