Python裝飾器



'''

def foo():

    print 'foo'

 

 

def foo():

    print 'before do something'

    print 'foo'

    print 'after'

 

 

def foo():

    print 'foo'

     

def wrapper(func):

    print 'before'

    func()

    print 'after'

      

wrapper(foo)

 

 

def foo():

    print 'foo'

     

def wrapper(func):

    def result():

        print 'before'

        func()

        print 'after'

    return result

Do = wrapper(foo)

Do()

'''

 

 

     

def wrapper(func):

    def result():

        print 'before'

        func()

        print 'after'

    return result

 

@wrapper

def foo():

    print 'foo'

 

foo() 








1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36 


#!/usr/bin/env python

#coding:utf-8

 

def Before(request,kargs):

    print 'before'

     

def After(request,kargs):

    print 'after'

 

 

def Filter(before_func,after_func):

    def outer(main_func):

        def wrapper(request,kargs):

             

            before_result = before_func(request,kargs)

            if(before_result != None):

                return before_result;

             

            main_result = main_func(request,kargs)

            if(main_result != None):

                return main_result;

             

            after_result = after_func(request,kargs)

            if(after_result != None):

                return after_result;

             

        return wrapper

    return outer

     

@Filter(Before, After)

def Index(request,kargs):

    print 'index'

     

     

if __name__ == '__main__':

    Index(1,2) 

發佈了209 篇原創文章 · 獲贊 23 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章