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))