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 inner10 #执行outer函数,并将其下面的函数名作为参数;将outer函数的返回值重新赋值给F1 =outer的返回值11 @outer12 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 inner10 def outer1(func):11 def inner(*args,**kwargs): #可接受任意个数的参数12 print('哈哈哈哈')13 r = func(*args,**kwargs) #可接受任意个数的参数14 return r15 return inner16 #执行outer函数,并将其下面的函数名作为参数;将outer函数的返回值重新赋值给F1 =outer的返回值17 @outer118 @outer19 def f1(a1,a2,a4,a5): #f1原函数==装饰器的inner函数20 print(a1+a2)21 f1(1,2,2,3)