什么是装饰器?
在代码运行的过程动态的添加功能的方式,我们叫做“装饰器”。使得代码复用,提高开发效率,应用场景:打印日志、性能测试等等。
实例:
先定义一个装饰器函数,接收一个函数为参数:
def dec(func):
def log(*args, **kwargs):
print "这句话是装饰器函数输出的!"
func(*args, **kwargs)
return log
利用python的@语法糖装饰我们的函数
@dec
def get_sum(a, b):
print a+b
get_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+b
get_sum(2,5)
输出:
这句话是装饰器函数输出的!
嵌套的我都晕了!
5