1 python装饰器的作用
被装饰对象加上装饰器(戴了个帽子),被装饰对象获得了更强大的功能。
2 python装饰器的原理
- python装饰器本身是一个函数
- 这个函数的参数是一个函数对象
- 这个函数的返回值也是一个函数对象,这个函数的功能更强
- 大python装饰器是python的一个语法糖(更简便的语法)
3 python装饰器的实现
3.1 最简陋的装饰器
运行结果如下:
3.2 给有返回值的函数加上装饰器
运行结果如下:
3.3 给有返回值和参数的函数加上装饰器
运行结果如下:
可变参数原理:
1 定义时使用可变参数:在函数定义时使用args,在函数调用时,所有未匹配到的位置参数,会被放到args这个元组当中。
在函数定义时使用**kwargs,在函数调用时,所有未匹配到的关键字参数,会被放到kwargs这个字典当中。
2 调用时使用可变参数:在函数调用时使用args,是把args这个元组解包,元组内的每个元素作为函数的位置参数传递。
在函数调用时使用**kwargs,是把kwargs这个字典解包,字典内的每个元素作为函数的关键字参数传递。
运行结果如下:
3.4 让我还是那个我
4 python装饰器在自动化测试框架中的应用
4.1 从一个需求开始
对自动化测试脚本需要增加日志打印功能:
- 测试用例执行前打印:测试用例【xxx】开始执行
- 测试用例执行完打印:测试用例【xxx】执行完毕
- 测试用例执行完打印:测试用例【xxx】执行耗时:xx秒
- 测试用例执行完打印分割线