码迷,mamicode.com
首页 > 编程语言 > 详细

Python 第五天 装饰器

时间:2016-03-02 23:33:31      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

装饰器

装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作。

 1 def wrapper(func):
 2     def result():
 3         print before
 4         func()
 5         print after
 6     return result
 7  
 8 @wrapper
 9 def foo():
10     print foo
 1 import functools
 2 
 3 
 4 def wrapper(func):
 5     @functools.wraps(func)
 6     def wrapper():
 7         print before
 8         func()
 9         print after
10     return wrapper
11 
12 @wrapper
13 def foo():
14     print foo
 1 #!/usr/bin/env python
 2 #coding:utf-8
 3  
 4 def Before(request,kargs):
 5     print before
 6      
 7 def After(request,kargs):
 8     print after
 9  
10  
11 def Filter(before_func,after_func):
12     def outer(main_func):
13         def wrapper(request,kargs):
14              
15             before_result = before_func(request,kargs)
16             if(before_result != None):
17                 return before_result;
18              
19             main_result = main_func(request,kargs)
20             if(main_result != None):
21                 return main_result;
22              
23             after_result = after_func(request,kargs)
24             if(after_result != None):
25                 return after_result;
26              
27         return wrapper
28     return outer
29      
30 @Filter(Before, After)
31 def Index(request,kargs):
32     print index
33      
34      
35 if __name__ == __main__:
36     Index(1,2)

 

Python 第五天 装饰器

标签:

原文地址:http://www.cnblogs.com/sundi/p/5236759.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!