python 装饰器
1、装饰器是什么?
装饰器本质上是一个函数,但是它比较特殊,它的参数是另一个函数,返回也是函数。相当于说它可以把一个函数,转化成另一个函数。
2、装饰器长什么样?
首先定义装饰器:
def deco(func):
def new_func():
return func()+1
return new_func
这里实现了将一个函数的返回值+1进行返回的函数 相当于h(x) = f(x)+1
3、如何使用?
可以这样
def func():
return 1
func = deco(func)
也可以使用语法糖
@deco
def func():
return 1
4、现实生活中装饰器一般怎么用?
1、装饰器一般用来装饰多个函数,不然它都可以直接写在函数里了是不是。所以它一般实现一些比较通用的功能,比如说记录运行的时间就很适合用装饰器。
2、注入参数,使用默认参数之类的
3、记录日志
有好些例子,可以参考文档https://wiki.python.org/moin/PythonDecoratorLibrary
function_tools.wraps作用
https://www.cnblogs.com/skaarl/p/9406910.html