(六)装饰器扩展之---@pytest.mark.XXX使用原理

(一)@pytest.mark.XXX是怎么实现的?

玩过接口自动化的童鞋都用过pytest,基本都是用装饰器实现的,上几个文章我们讲了装饰器的使用原理,这次我们拓展一个新的知识点:@pytest.mark.XXX这个实现原理是什么?

import pytest

@pytest.mark.skip
def test():
    pass

我们举个例子  :

@pytest.mark.skip  实际上就是使用pytest模块里面的mark这个对象.skip方法

@模块.对象.方法

(二)我们来自己实现一个这种形式的装饰器

(1)我们新建一个lemon.py文件,创建一个Mark类,里面写了skip函数,skip函数里面有一个嵌套函数wrapper。

 (2)再建一个demo1_装饰器扩展.py文件, 创建一个test2方法,然后@lemon.mark.skip, 最后在下面调用test2()试试。

 打印结果:

----skip----1
------test2------
----skip----2

下面上源码给大家自己去试一下

from py09_07day import lemon


class Mark:
    def skip(self, func):
        def wrapper(*args, **kwargs):
            print("----skip----1")
            res = func()
            print("----skip----2")
            return res

        return wrapper


mark = Mark()





# @lemon.mark.skip ===>  @lemon这个类.mark对象.方法
# @skip   test2 = skip(test2)
@lemon.mark.skip
def test2():
    print('------test2------')


test2()



# 打印结果
----skip----1
------test2------
----skip----2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值