3、多个装饰器装饰一个函数

# 3、多个装饰器装饰一个函数
def wrapper1(f):
    def inner1():
        print('wrapper1, before func')
        ret = f()
        print('wrapper1, after func')
        return ret
    return inner1

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


@wrapper2  # f = wrapper2(f) 里面的f新变量 = inner1 外面的f最新变量 = inner2
@wrapper1  # f = wrapper1(f) 里面的f函数名  外面的f新变量=inner1
def f():
    print('in f')
f()

# ''' # 结果: # wrapper2 ,before func # wrapper1 ,before func # in f # wrapper1 ,after func # wrapper2 ,after func # '''

 

posted @ 2018-05-15 17:00  龙的传人123  阅读(60)  评论(0)    收藏  举报