python装饰器

 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)

 

posted @ 2017-02-16 07:59  Erick-LONG  阅读(174)  评论(0编辑  收藏  举报