python装饰器学习

来源:互联网 发布:2015年度网络热词 编辑:程序博客网 时间:2024/05/01 22:48

在廖雪峰网站学习python的装饰器

习题:请编写一个decorator,能在函数调用的前后打印出'begin call''end call'的日志。

答案:

import functoolsdef log(func):    @functools.wraps(func)    def wrapper(*args,**kw):        print "begin call"        f = func(*args, **kw)        print "end call"        return f    return wrapper@logdef test():    print "hello"test()

输出:

begin call
hello
end call