pickle 实现
以后都在 github 更新,请戳 python3 pickle 实现
目录
相关位置文件
- Lib/pickle.py
- Modules/_pickle.c
- Modules/clinic/_pickle.c.h
简介
我们用 pickle
来对 python
中的对象进行序列化和反序列化, pickle
总共有好几个版本, 当前的版本号是 4
pickle
模块会在可能的情况运行 C(Modules/_pickle.c)
实现的代码, 这样效率更高, 但是如果无法加载, 还有一个纯 python
实现的 pickle
(Lib/pickle.py
) 作为备选
类型 | 实现 |
---|---|
None | save_none |
bool | save_bool |
int | save_long |
float | save_float |
bytes | save_bytes |
str | save_str |
tuple | save_tuple |
list | save_list |
dict | save_dict |
set | save_set |
frozenset | save_frozenset |
FunctionType | save_global |
save_reduce |
实现
每当你调用 dump
时, 结果数据除了对象本身, 还会包含一些额外的信息
第一个字节是一个标识符, 表示接下