1 def outer(func): 2 def inner(*args,**kwargs): #可接受任意个数的参数 3 print('hahha') 4 print('hahha') 5 r = func(*args,**kwargs) #可接受任意个数的参数 6 print('heihei') 7 print('heihei') 8 return r 9 return inner 10 #执行outer函数,并将其下面的函数名作为参数;将outer函数的返回值重新赋值给F1 =outer的返回值 11 @outer 12 def f1(a1,a2,a4,a5): #f1原函数==装饰器的inner函数 13 print(a1+a2) 14 f1(1,2,2,3)
多层套用装饰器
1 def outer(func): 2 def inner(*args,**kwargs): #可接受任意个数的参数 3 print('hahha') 4 print('hahha') 5 r = func(*args,**kwargs) #可接受任意个数的参数 6 print('heihei') 7 print('heihei') 8 return r 9 return inner 10 def outer1(func): 11 def inner(*args,**kwargs): #可接受任意个数的参数 12 print('哈哈哈哈') 13 r = func(*args,**kwargs) #可接受任意个数的参数 14 return r 15 return inner 16 #执行outer函数,并将其下面的函数名作为参数;将outer函数的返回值重新赋值给F1 =outer的返回值 17 @outer1 18 @outer 19 def f1(a1,a2,a4,a5): #f1原函数==装饰器的inner函数 20 print(a1+a2) 21 f1(1,2,2,3)