Python 使用多个函数修改存储数据时的问题

Python 使用多个函数修改存储数据时的问题,python,python-3.x,list,dictionary,import,Python,Python 3.x,List,Dictionary,Import,在开始之前,让我先描述一下文件的结构 Data.py:包含一个名为users\u list的字典列表,其中包含用户信息(最初存储了11个用户) py:包含函数,例如auth_register和auth_login other.py:包含clear函数,该函数将用户词典列表返回到初始状态 test_register.py/test_login.py:包含与pytest一起使用的测试,以测试我的函数 这就是问题所在。我有一系列通过pytest运行的测试。Pytest本身首先运行test_登录文件,然

在开始之前,让我先描述一下文件的结构

Data.py:包含一个名为users\u list的字典列表,其中包含用户信息(最初存储了11个用户)

py:包含函数,例如auth_register和auth_login

other.py:包含clear函数,该函数将用户词典列表返回到初始状态

test_register.py/test_login.py:包含与pytest一起使用的测试,以测试我的函数

这就是问题所在。我有一系列通过pytest运行的测试。Pytest本身首先运行test_登录文件,然后运行test_注册文件。现在不用说,为了登录到一个帐户,你必须首先注册。这很好,因为我只需调用auth_register()函数创建一个新帐户,然后登录即可。由于有几次登录尝试,也有几次注册尝试,这导致了大约5个额外的帐户,而前11个帐户总共存储了16个帐户

下面是我在test_注册中的一个测试,它在test_登录后运行:

def test_normal_email():
clear()
register_dict = auth_register("johnsmithh@gmail.com","password123","John", "Smith" )
assert(register_dict["u_id"] == 12)
assert(register_dict["token"] == "12")
现在这里的主要问题是pytest给出了一个断言错误,即第一个断言返回17==12,这显然是不正确的,这意味着,尽管调用了clear函数,这意味着要将用户从12-16中删除,但字典列表并没有被触及。下面是我在clear函数中运行的内容:

global users_list
users_list = master_users_list[:]
作为旁注,master_users_列表与初始users_列表相同,因此本质上我尝试用初始值覆盖users_列表

为了进行一些调试,我使用了如下打印语句:

print(users_list)
users_list = master_users_list[:]
print(users_list)
有趣的是,第一个print语句将列表显示给第16个用户,第二个语句仅显示给第11个基本用户。很明显,这个项目正在发挥作用。但是,为什么当我通过注册重新创建新用户时,字典列表中的16个用户仍然是我的呢?对我来说,似乎other.py和auth.py都有自己的用户列表实例,它们没有同步在一起。我有什么遗漏吗

仅供参考,我在other.py中的导入内容包括:

从虚拟用户数据导入用户列表、主用户列表

类似地,在auth.py中:

from dummy_data import users_list
from other import clear
在测试文件中(我并不认为它需要它):


谢谢你的阅读!我知道这是一个很长的问题,但我已经尝试了我所知道的一切。

你的问题是什么?
import pytest
from auth import auth_register
from other import clear
from dummy_data import users_list, master_users_list