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 ____