python 装饰器

来源:互联网 发布:桔子影音软件 编辑:程序博客网 时间:2024/05/13 22:54

什么是装饰器?
在代码运行的过程动态的添加功能的方式,我们叫做“装饰器”。使得代码复用,提高开发效率,应用场景:打印日志、性能测试等等。

实例:
先定义一个装饰器函数,接收一个函数为参数:

def dec(func):    def log(*args, **kwargs):        print "这句话是装饰器函数输出的!"        func(*args, **kwargs)    return log

利用python的@语法糖装饰我们的函数

@decdef get_sum(a, b):    print a+bget_sum(2,5)

输出:

我的上面是装饰器函数输出的!5

带参数的装饰器函数
其实就是多嵌套了一层函数,接收参数,还是用刚刚的例子:

def dec(text):     def add(func):         def log(*args, **kwargs):^M             print "这句话是装饰器函数输出的!" + "\n" + text             func(*args, **kwargs)^M         return log     return add
@dec("嵌套的我都晕了!")def get_sum(a, b):    print a+bget_sum(2,5)

输出:

这句话是装饰器函数输出的!嵌套的我都晕了!5