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

python 函数装饰器

时间:2019-07-24 00:00:03      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:div   code   http   not   pre   日志   The   htm   run   

举个例子

def a_decorator(func):
    def wrapTheFunc():
        print "before decorator"
        func()
        print "end decorator"

    return wrapTheFunc


@a_decorator
def a_func_need_decorator():
    print "In a_func_need_decorator()"


a_func_need_decorator()

输出

before decorator
In a_func_need_decorator()
end decorator

等价

不是很明白? 

@a_decorator 

def a_func_need_decorator():

等价于

a_func_need_decorator = a_decorator(a_func_need_decorator)

修改下代码

def a_decorator(func):
    def wrapTheFunc():
        print "before decorator"
        func()
        print "end decorator"

    return wrapTheFunc


def a_func_need_decorator():
    print "In a_func_need_decorator()"


a_func_need_decorator = a_decorator(a_func_need_decorator)
a_func_need_decorator()

结果是一致的

什么?函数还可以作为对象传输

是的,举例

def test(a):
    print a


test2 = test
test2("hello")

输出

hello  

场景

账号验证

日志

 

参考

https://www.runoob.com/w3cnote/python-func-decorators.html

 

python 函数装饰器

标签:div   code   http   not   pre   日志   The   htm   run   

原文地址:https://www.cnblogs.com/kaituorensheng/p/11235219.html

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