- A+
所属分类:python基础入门
此篇专门写给零基础的小伙伴,希望能帮到大家~
一、方法调用前
在调用之前检查方法的参数是否合规,或者判断是否有相应的执行权限,这都是常用的手法,本例中检验第一个参数是否为正数,如果是,则执行加法,否则抛出错误,那我们可以定义如下的装饰器:
现在继续执行添加注解与调用方式,就会出现你想要的结果,如下:
二、方法调用后与装饰器参数
这一般用于对结果进行处理,如类型转换,将对象转换为JSON字符串,或者结果判断等,如下:
请记住上面的调用层次,一定是先执行参数的方法,返回没有参数的装饰函数,最后返回封装后的结果函数,等同于after(5)(before(add(a, b))),调用方式如下:
三、方法调用前后(环绕)
四、方法调用异常
这种装饰器一般用于方法调用出现异常时,所以一定会携带装饰器参数,且参数为异常类型,然后处理逻辑会放在异常捕获语句中,示例如下:
经过异常装饰器处理后,你会返现,现在3除以0也不报错了,而是返回0,所以这适合统一的异常处理。
五、装饰器的顺序
为什么呢?因为执行round函数后,返回结果与参数都为None,所以执行after函数必然出错。
六、能保留原始信息的@wraps
结论
我的微信公众号
爱真理,得永生! 爱在灵灵久博客,网罗天下,福利大家!