本文主要是介绍装饰器(Decorators)的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、Python 中的函数可以像普通变量一样当做参数传递给另外一个函数;
2、装饰器:不修改函数源码但是要实现给函数添加额外功能。python使用语法糖即@来实现装饰器。
3、装饰器的作用:
(1)抽离出大量函数中与函数功能本身无关的雷同代码并继续使用
(2)为函数添加额外功能
4、装饰器的使用场景:
缓冲装饰器、权限验证装饰器、计时装饰器、日志装饰器、路由装饰器、异常处理装饰器、错误重试装饰器。
5、装饰器有两种:函数装饰器与类装饰器。
6、函数装饰器详解
(1)函数装饰器装饰函数:
假定有一个函数实现两个数的相加,a+b,但是为了对这两个数相加的结果进行加密,我们需要给函数添加额外的代码,但是我们通过装饰器去实现,要达到的效果是,不是直接返回a+b的结果,而是进行进一步处理。代码如下:
a、以上两段代码实现的功能是一样的,即装饰器@MethodDecoration相当于n=MethodDecoration(add_function)。
b、函数装饰器装饰函数:编写一个函数,传入参数是函数名,返回wrapper(函数名)。该函数中固定内置wrapper()函数,wrapper()的参数即被装饰函数的参数,返回装饰后的返回值。
c、调用函数装饰器装饰函数:以第二段代码为例:调用装饰函数返回变量n(该变量为函数名wrapper)。变量n实际是函数wrapper(a,b),所以通过传参调用wrapper(a,b)实现对add_function()的装饰。
函数装饰器装饰函数的模板:
(2)函数装饰器装饰类
7、类装饰器详解
参考文章:http://t.csdnimg.cn/wnH4D
这篇关于装饰器(Decorators)的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!