美文网首页
【Python】浅拷贝以及深拷贝

【Python】浅拷贝以及深拷贝

作者: 失语失芯不失梦 | 来源:发表于2019-04-10 20:55 被阅读0次

    在写接口测试的时候,碰到一个问题,就是我在接口A读取了配置文件中的某个字典数据,并在字典中加了一个参数一起拼接到接口标参里请求,下次在接口B使用同一个配置文件中的这个字典数据的时候,我期望的是使用原始数据,但实际上却是使用的我在接口A更改之后的数据。

    先说,rc这个类函数里面是有读取文件这一步的

    拿图里这个例子来讲,在test2这个方法里面我期望的guid值应该是“原始guid”,但实际上使用的值确实test1里更改之后的值“1111”。这是因为,test1更改之后,就把payload这个变量写入内存中了,但是test2使用payload这个参数的时候并没有再次从文件中读取,而是从内存中读取的,所以变量值为1111。

    改成这个样子就满足需求了,每次调用payload之前都先去读一遍文件

    这个用深拷贝怎么来操作呢?

    这种方法跟直接把获取配置文件的函数写在每个方法里面差不多

    但是,如果你获取配置参数的方法不是从文件里读,而是直接导入一个模块读取的话,就需要用到深拷贝了

    至于深拷贝和浅拷贝的区别可以参考这篇文章,说简单一点就是深拷贝连原始数据里的子对象都不会改变,而浅拷贝可以更改原始数据里的子对象

    相关文章

      网友评论

          本文标题:【Python】浅拷贝以及深拷贝

          本文链接:https://www.haomeiwen.com/subject/rzzoiqtx.html