编程语言
首页 > 编程语言> > Python 动态创建类属性的机制 实现 接口依赖

Python 动态创建类属性的机制 实现 接口依赖

作者:互联网

我们在接口自动化测试中经常遇到一个接口的请求参数是另一个接口响应信息中的内容,解决方法有:

但是第1种设置全局变量使用时,容易有以下问题:

动态创建类属性方法:
第一种:
创建:类名.属性名 = 具体的属性值
获取:变量名 = 类名.属性名

第二种:
创建:setattr(类名/实例对象名,属性名,具体的属性值)
获取:getattr(类名/实例对象名,属性名)
注:属性名需要加引号

实战:创建类属性 loan_id

# 第一种,动态创建
#** 类名.属性名 = 具体的属性值**
Context.loan_id = mysql_data.get('Id')    # 动态创建类属性
# 第二种,创建 setattr(译:赛特attr)
# 如果第一个参数为实例对象, 那么将会为这个实例对象, 创建实例属性
# 如果第一个参数为类, 那么将会创建类型属性
# 第二个参数为属性名的字符串
# 第三个参数为具体的属性值
setattr(Context, "loan_id", mysql_data.get('Id'))       # setattr(译:赛特attr)


@classmethod
def loan_id_replace(cls, data):
    if re.search(cls.loan_id_pattern, data):    # 如果不查找可以直接替换
        # 第一种,动态获取
        # loan_id = Context.loan_id
        # data = re.sub(cls.loan_id_pattern, loan_id, data)

        # 第二种:获取用 getattr(译:给特attr) 获取这个类当中的 loan_id 类属性的 值
        # 如果第一个参数为实例对象 或 类
        # 第二个参数为属性名的字符串
        loan_id = str(getattr(Context, "loan_id"))  # 我们获取的 loan_id 是int类型需要转换
        data = re.sub(cls.loan_id_pattern, loan_id, data)
    return data

标签:Python,loan,接口,实例,动态创建,data,id,类名,属性
来源: https://www.cnblogs.com/wzy000/p/15770608.html