import json class UserManager: """管理用户数据的增删查改,并支持 JSON 文件保存和加载。""" def __init__(self): self.users = [] # 存放所有用户字典 self.next_id = 1 # 下一个要分配的 id def add_user(self, name, age): """添加用户,自动分配 id,返回该用户字典。""" user = {"id": self.next_id, "name": name, "age": age} self.users.append(user) self.next_id += 1 return user def get_user(self, user_id): """按 id 查询用户,不存在返回 None。""" for user in self.users: if user["id"] == user_id: return user return None def update_age(self, user_id, age): """修改用户年龄,成功返回 True,不存在返回 False。""" for user in self.users: if user["id"] == user_id: user["age"] = age return True return False def remove_user(self, user_id): """删除用户,成功返回 True,不存在返回 False。""" for user in self.users: if user["id"] == user_id: self.users.remove(user) return True return False def list_users(self): """列出所有用户(按添加顺序)。""" return self.users def save_to_json(self, filepath): """把所有用户保存为 JSON 文件。""" with open(filepath, "w", encoding="utf-8") as f: json.dump(self.users, f, ensure_ascii=False, indent=2) def load_from_json(self, filepath): """从 JSON 文件加载用户,覆盖当前数据。""" with open(filepath, "r", encoding="utf-8") as f: self.users = json.load(f) # 后续添加的 id 接续已加载的最大 id if self.users: self.next_id = max(user["id"] for user in self.users) + 1 else: self.next_id = 1