1. Learn
  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> 标签。