文章目录
各位老板好
, pickle 的核心是 PVM(Pickle Virtual Machine), 其基于栈的虚拟机,通过操作码(opcode)控制序列化/反序列化过程,更多细节请见代码
1 底层实现原理
pickle
的序列化/反序列化过程由 PVM(Pickle Virtual Machine) 驱动,通过操作码(opcode)控制对象转换流程:
1.1 序列化流程(Pickling)
- 递归遍历对象结构
- 将对象状态转换为 操作码序列(如
BININT
,BINSTRING
) - 生成二进制协议数据流(协议版本0为ASCII,>1为二进制)
1.2 反序列化流程(Unpickling)
- 按操作码指令重建对象
- 动态导入模块/类(安全风险根源)
- 递归填充对象状态
1.3 关键协议版本
v0: 人类可读的ASCII格式(兼容