# 装饰器模式

装饰器模式也是最常用的模式之一。其最大的特点就是,在不改变原有代码逻辑的情况下,给代码片段增加额外的属性。

# 代码实例

# 方式一

这是最简单的写法。将test函数,也就是被装饰的函数,传入decorator,再将其赋给test,这一来,test逻辑没有发生改变,也不会影响到其余调用test的地方

def test():
    print('执行...test....')


def decorator(func):
    def inner_func():
        print('开始执行')
        func()
        print('结束执行')

    return inner_func

test = decorator(test)

if __name__ == '__main__':
    test()

# 方式二

利用内置装饰器, @符号,关于@符号的介绍,在个人博客有各大篇幅的介绍,可参考。 http://www.bianbingdang.com/article_detail/194.html

def decorator(func):
    def inner_func():
        print('开始执行')
        func()
        print('结束执行')

    return inner_func


@decorator
def test():
    print('执行...test....')


if __name__ == '__main__':
    test()