1. Обучение
  2. /
  3. Курса
  4. /
  5. Написание функций на Python

Connected

упражнение

Генератор HTML

Вы пишете скрипт, который генерирует HTML для веб-страницы на лету. Пока вы создали два декоратора, которые добавляют теги жирного шрифта или курсива к любой функции, возвращающей строку. Однако вы замечаете, что эти два декоратора очень похожи. Вместо того чтобы писать множество похожих декораторов, вы хотите создать один декоратор html(), который принимает произвольную пару открывающего и закрывающего тегов.

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

Инструкции 1/4

undefined XP
  • 1

    Верните декоратор и декорированную функцию из нужных мест в новом декораторе html().

  • 2

    Используйте декоратор html(), чтобы обернуть возвращаемое значение функции hello() в строки <b> и </b> (HTML-теги для жирного шрифта).

  • 3

    Используйте html(), чтобы обернуть возвращаемое значение функции goodbye() в строки <i> и </i> (HTML-теги для курсива).

  • 4

    Используйте html(), чтобы обернуть функцию hello_goodbye() в тег DIV — для этого добавьте вокруг строки теги <div> и </div>.