1. Nauka
  2. /
  3. Kursy
  4. /
  5. Pisanie funkcji w Pythonie

Connected

ćwiczenie

Generator HTML

Piszesz skrypt, który na bieżąco generuje kod HTML dla strony internetowej. Masz już dwa dekoratory dodające tagi pogrubienia lub kursywy do dowolnej funkcji zwracającej ciąg znaków. Zauważasz jednak, że oba dekoratory wyglądają bardzo podobnie. Zamiast pisać kolejne podobne dekoratory, chcesz stworzyć jeden dekorator – html() – który przyjmie dowolną parę tagów otwierającego i zamykającego.

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

Instrukcje 1/4

undefined XP
  • 1

    Zwróć dekorator i udekorowaną funkcję z właściwych miejsc w nowym dekoratorze html().

  • 2

    Użyj dekoratora html(), aby owinąć wartość zwracaną przez hello() ciągami <b> i </b> (tagi HTML oznaczające pogrubienie).

  • 3

    Użyj html(), aby owinąć wartość zwracaną przez goodbye() ciągami <i> i </i> (tagi HTML oznaczające kursywę).

  • 4

    Użyj html(), aby owinąć hello_goodbye() tagiem DIV – w tym celu dodaj ciągi <div> i </div> wokół zwracanego tekstu.