装饰器
装饰器本质上是⼀个python函数,装饰器的实现是由闭包支撑的,在不改变原函数代码的前提下为函数增加额外的功能,装饰器的返回值也是⼀个函数的对象
应用场景:
1.可以在外层函数加上时间计算函数,计算函数运行时间;
2.计算函数运行次数;
3.可以用框架的路由传参;
4.插入日志,作为函数的运行日志;
5.缓存,实现缓存处理;
6.权限的校验,在函数外层套上权限校验的代码,实现权限校验;
7.事务处理,可以让函数实现事务的一致性,让函数要么一起运行成功,要么一起运行失败;
闭包
闭包概念:在一个内部函数中,对外部作用域的变量进行引用,(并且一般外部函数的返回值为内部函数),那么内部函数就被认为是闭包。举个栗子先:

在函数startAt中定义了一个incrementBy函数,incrementBy访问了外部函数startAt的变量,并且函数返回值为incrementBy函数(注意python是可以返回一个函数的,这也是python的特性之一)

上面代码中a其实就是一个函数,上面代码执行的结果:

从结果我们不难看出,a是函数incrementBy而不是startAt这个有点绕,但是并不难理解,因为return回来的是incrementBy函数。

输出是:

如果调用函数a的话,得到的结果是传入参数的整数值加。
本文深入探讨Python装饰器的概念与应用,介绍装饰器如何通过闭包为原有函数添加新功能而不修改其代码,列举多种实际场景如计时、权限验证等,并解析闭包的基本原理。
1950

被折叠的 条评论
为什么被折叠?



