def outer(func):

    def inner(*arg,**kwargs):
        print('#####')
        r = func(*arg,**kwargs)
        print('*****')
        return r
    return inner

@outer
def f(a,b):
    return a*b
f(3,3)
print(f(3,3))

#f(3,3)执行装饰器inner函数,执行输出#和* 并且把返回值r赋值给f(3,3)
#print(f(3,3)) 执行完f(3,3)后 输出r  r为f(3,3)函数的返回值

@outer
def f1(a,b,c):
    return a*b*c
f1(3,2,2)
print(f1(3,2,2))

 

posted on 2017-11-22 17:46  悯尘  阅读(255)  评论(0编辑  收藏  举报