Python的装饰器是什么?
装饰器本质是一个可调用的函数,用于修正函数或类,它可以让其他函数在不需要做任何代码改动的前提下增加额外功能。
接收一个函数作为参数,添加一些功能,然后返回它。
Multiple 多重装饰器按照应用的顺序依次执行。
主要有以下一些场景:
- 引入日志
- 函数执行时间统计
- 执行函数前预备处理
- 执行函数后的清理功能
- 权限校验等场景
- 缓存
示例一
import functools
def deco(func):
@functools.wraps(func) #加在最内层函数正上方
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@deco
def index():
"还好还好"
x = 10
print('from index')
print(index.__name__)
print(index.__doc__)
# 加@functools.wraps
# index
# 还好还好
# 不加@functools.wraps
# wrapper
# None
示例二
def test_decorator(func):
def function_wrapper(x):
print("Before calling " + func.__name__)
res = func(x)
print(res)
print("After calling " + func.__name__)
return function_wrapper
@test_decorator
def sqr(n):
return n ** 2
sqr(54)
作者:皎然CEO
链接:https://www.cnblogs.com/jiaoran/p/14308125.html
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦(っ•̀ω•́)っ✎⁾⁾!