Erste SchritteKostenlos loslegen

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

Kurs anzeigen

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 ____
Bearbeiten und Ausführen von Code