python - Python Pickle 格式在哪里正式定义?
问题描述
Python 语言在“Python 语言参考”( 1 ) 中正式定义,其中包含有关 Python 源代码语法的详细信息。“Python 标准库”(2)参考对 Python 标准库做了类似的事情,包括 Pickle 模块(3)。但是,本文档并未真正解释 Pickle 格式的结构。
根据 的输出pickletools
,以及阅读格式的一些解释,很明显 Pickle 是:
一个基于堆栈的虚拟机,它跟踪对象。该文件只是序列化操作码的列表,第一个是协议版本,最后一个是停止操作码。当满足停止操作码时,堆栈上的当前对象被弹出。( 4 )。
据我所知,这个结构和实际的操作码列表实际上都不是官方定义的任何官方 Python 文档。某些 PEP ( 5 ) ( 6 ) ( 7 ) 描述了在较新版本的规范中添加的新操作码,但操作码的原始列表无处可寻。
Pickle 格式在哪里正式定义?它只是 Python 源代码吗?如果这是真的,如果标准库没有正式的规范,怎么可能创建一个新的 Python 实现呢?
解决方案
推荐阅读
- visual-studio - “System.NullReferenceException”类型的第一次机会异常
- php - 如何确保每个事件只能通过 codeigniter 中的 role_id 查看(只有超级管理员可以查看所有列表)?
- php - 如何将数据传递给外部程序并取回结果
- istio - Istio 服务到服务流量加密
- json - 如何将用户评论容器添加到 Listview Flutter
- android - 测试错误 - NoClassDefFoundError:解析失败:Lorg/hamcrest/Matchers
- javascript - Angular - 如何处理后端到前端的命名约定?
- swift - 如何在 SwiftUI 中为网格布局创建自定义大小的正方形
- express - 如何使用 JPG 数据字符串在 Express 中响应?
- c - 交叉编译库链接