1 python装饰器的作用
被装饰对象加上装饰器(戴了个帽子),被装饰对象获得了更强大的功能。
2 python装饰器的原理
- python装饰器本身是一个函数
- 这个函数的参数是一个函数对象
- 这个函数的返回值也是一个函数对象,这个函数的功能更强
- 大python装饰器是python的一个语法糖(更简便的语法)
3 python装饰器的实现
3.1 最简陋的装饰器
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
运行结果如下:
3.2 给有返回值的函数加上装饰器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
运行结果如下:
3.3 给有返回值和参数的函数加上装饰器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
运行结果如下:
可变参数原理:
1 定义时使用可变参数:在函数定义时使用args,在函数调用时,所有未匹配到的位置参数,会被放到args这个元组当中。
在函数定义时使用**kwargs,在函数调用时,所有未匹配到的关键字参数,会被放到kwargs这个字典当中。
2 调用时使用可变参数:在函数调用时使用args,是把args这个元组解包,元组内的每个元素作为函数的位置参数传递。
在函数调用时使用**kwargs,是把kwargs这个字典解包,字典内的每个元素作为函数的关键字参数传递。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
运行结果如下:
3.4 让我还是那个我
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
4 python装饰器在自动化测试框架中的应用
4.1 从一个需求开始
对自动化测试脚本需要增加日志打印功能:
- 测试用例执行前打印:测试用例【xxx】开始执行
- 测试用例执行完打印:测试用例【xxx】执行完毕
- 测试用例执行完打印:测试用例【xxx】执行耗时:xx秒
- 测试用例执行完打印分割线
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】