开始使用免费开始使用

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

本练习是课程的一部分

Python 函数编写

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

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 ____
编辑并运行代码