1.Python 的装饰器是什么?
- 本质上是一个 Python 函数
- 为已存在的方法提供额外的功能
- 可以将大量与方法本身提供的功能无关的代码提取出来,方便重用
2.Python 的装饰器一般是用来干嘛?
- 可以直接用框架提供的装饰器,一般会用到 pytest、allure 的装饰器,以下是自己写的:
- 异常捕捉:会给自己封装的每个方法加上这个异常捕捉装饰器,如果调用的封装方法报错了,就会进入这个装饰器,捕捉到指定异常后,我会刷新页面,再次执行刚刚报错的封装方法,然后会记录一次失败日志
- 日志:一般自己封装的方法都希望有日志,那如果每个封装的方法里单独调用日志类就会显得很臃肿重复,所以可以用一个日志装饰器代替
- 前置操作:比如多个方法执行前都需要调用同一个方法,那可以将依赖方法写在装饰器中
- 后置操作:比如每次执行方法后都需要还原数据集,可以将清理操作写在装饰器中
- 权限校验:执行方法前先进行权限校验,校验通过才会允许执行方法