什么是装饰器
简单说python装饰器就是修改其他函数的功能的函数。更多参考
举个简单栗子
例如,如下函数
def say(something):
print ("say {}!".format(something))
现在想调用say函数之前打印一下函数名字,可这样实现
#打印函数名字
print(say.__name__)
#调用函数
say('demo')
这个方法实现可以,弊端也很明显:每次调用不同函数,打印函数就得写一行新代码。
看看装饰器怎么做的。
import functools
def logging(func):
@functools.wraps(func)
def wrapper(*args,**kwargs):
print('{}'.format(func.__name__))
return func(*args,**kwargs)
return wrapper
使用装饰器,在定义函数前加上语法糖接装饰器名称即可:
@logging
def say(something):
print ("say {}!".format(something))
装饰器应用
应用还是很广泛的,不乏以下应用:
1、打印日志
2、内存处理
3、路由处理
4、连接数据库