装饰器笔记

def html_tags(tag_name):
    def wrapper_(func):
        def wrapper(*args, **kwargs):
            content = func(*args, **kwargs)
            return "<{tag}>{content}</{tag}>".format(tag=tag_name, content=content)
        return wrapper
    return wrapper_

#@html_tags('b')(hello)(name='Andy')
#@html_tags('b')
def hello(name='Toby'):
    return 'Hello {}!'.format(name)


#print(hello())
# 不用@的写法如下
print(html_tags('b')(hello)())
# html_tag('b') 是一个闭包,它接受一个函数(hello),并返回一个函数

# hello = html_tags('b')(hello)
# hello = wrapper_(hello)
# hello = wrapper
#hello()
#wrapper(name='Toby')

上一篇:R shinydashboard——3.外观


下一篇:eclipse - 自定义注释模板(Code Template)