Začněte nyníZačněte zdarma

HTML generátor

Píšeš skript, který dynamicky generuje HTML pro webovou stránku. Zatím jsi napsal/a dva dekorátory, které obalí návratovou hodnotu libovolné funkce vracející řetězec tučnými nebo kurzívními tagy. Všimneš si ale, že tyto dva dekorátory jsou si velmi podobné. Místo psaní dalších podobně vypadajících dekorátorů chceš vytvořit jeden universální dekorátor html(), který přijme libovolný pár otevíracího a zavíracího tagu.

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

Toto cvičení je součástí kurzu

Writing Functions in Python

Zobrazit kurz

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 ____
Upravit a spustit kód