# 1. 装饰器的原则 -> 开放封闭原则

# 2. 装饰器的作用 -> 在不改变函数调用方式的基础上在函数的前、后添加功能

def wrapper1(func):
    def inner1():
        print('wrapper1 ,before func')
        ret = func()
        print('wrapper1 ,after func')
        return ret

    return inner1


def wrapper2(func):
    def inner2():
        print('wrapper2 ,before func')
        ret = func()
        print('wrapper2 ,after func')
        return ret

    return inner2

@wrapper2
@wrapper1
def f():
    print('in f')
    return '哈哈哈'

print(f()) # 哈哈哈

An image

foo
更新时间: 2020年6月1日 14:22