装饰器(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值