测试开发进阶(四)
闭包
1 | def func(): |
满足闭包的条件
- 函数中嵌套一个函数
- 外层函数的返回值是内层函数的函数名
- 内层嵌套函数对外部作用域有一个非全局变量的引用
闭包的作用
- 实现数据锁定
1 | # 数据锁定 |
装饰器
开放封闭原则:软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。
装饰器的作用:在不更改原功能函数内部代码,并且不改变调用方法的情况下为原函数添加新的功能。
@
:语法糖
1 | def decorator(num): |
1 | def decorator1(func): |
一个作用域的错误
1 | a = 100 |
装饰器常见应用场景
- 权限校验
- 计算时间⌛️
- 环境准备和恢复工作
- web自动化用例失败截图
Chrome插件推荐-ChroPath
web自动化用例失败截图
1 | from selenium import webdriver |
带参数的装饰器
1 | def decorator(func): |
类实现装饰器
__call__
:魔术方法,在对象使用括号调用的时候会触发
1 | class MyDecorator(object): |
装饰器装饰类
1 | def dceorator(func): |