装饰器
了解装饰器首先要知道装饰器诞生的缘由是因为代码的开放封闭原则,它规定了已经实现的功能代码不允许被修改,但是可以被扩展。
装饰器就是在不改变函数本身代码的情况下给函数添加其他功能且不改变函数本身功能,装饰器的本质上是函数闭包的使用,通过改变原有函数指针指向给函数增加功能,代码实现:
def wrapper(func):
# 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包
def wrappedfunc(*args, **kwargs):
"""在此处编写需要在函数调用前增加的功能代码段"""
ret = func(*args, **kwargs)
"""在此处编写需要在函数调用后增加的功能代码段"""
return ret
return wrappedfunc
装饰器功能
- 1.引入日志
- 2.函数执行时间统计
- 3.执行函数前预备处理
- 4.执行函数后清理功能
- 5.权限校验等场景
- 6.缓存