装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象
它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。
一、类装饰器
如:自动化测试中,@ddt就是装饰器,使用ddt类中的data方法,作用是解析*login_data.data数据包的数据为一条一条的执行以下的test_01_login函数
执行的顺序就是:ddt.data函数先执行,执行ddt类中携带参数*login_data.data的data()函数,并返回一个参数,传递给test_01_login(case)中的case参数
在执行test_01_login函数,
二、内置装饰器
内置装饰器名称 | 含义 |
@property() | 将一个函数方法转成一个属性,使方法想属性一样被访问,可以保护属性的值,避免被修改 |
@classmethod | 在类中实例化类,执行时不用实例化,减少代码 |