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 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

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