(1) 定义一个 User 类,包括 id(整数),name(字符串),password(字符串),type(布尔类型) 四个属性(需私有化属性); (2) 自定义实例化 3 个 User 对象,将这些对象以 map 的形式序列化存储到文件exam.txt中,文件放在exam文件夹的根目录下; (3) 反序列化遍历读出exam.txt文件中的 3 个 User 对象,并在控制台输出实体内容。
时间: 2023-02-12 10:44:16 浏览: 118
以下是用 Python 实现上述需求的代码示例:
(1) 定义一个 User 类,包括 id(整数),name(字符串),password(字符串),type(布尔类型) 四个属性(需私有化属性):
```python
class User:
def __init__(self, id: int, name: str, password: str, type: bool):
self.__id = id
self.__name = name
self.__password = password
self.__type = type
```
(2) 自定义实例化 3 个 User 对象,将这些对象以 map 的形式序列化存储到文件 exam.txt 中,文件放在 exam 文件夹的根目录下:
```python
import pickle
# 实例化 3 个 User 对象
user1 = User(1, "user1", "password1", True)
user2 = User(2, "user2", "password2", False)
user3 = User(3, "user3", "password3", True)
# 以 map 的形式序列化存储到文件 exam.txt 中
users = {
user1.id: user1,
user2.id: user2,
user3.id: user3,
}
with open("exam/exam.txt", "wb") as f:
pickle.dump(users, f)
```
(3) 反序列化遍历读出 exam.txt 文件中的 3 个 User 对象,并在控制台输出实体内容:
```python
import pickle
# 反序列化读取 exam.txt 文件中的 3 个 User 对象
with open("exam/exam.txt", "rb") as f:
users = pickle.load(f)
# 遍历并输出实体内容
for id, user in users.items():
print(f"id: {user.id}, name: {user.name}, password: {user.password}, type: {user.type}")
```
希望这些代码能帮助到你