Python:确保我的类只使用最新的协议(protocol)进行 pickle

标签 python pickle

我正在开发一个只能使用协议(protocol) 2(以及 Python 3 及更高版本)进行有意义的 pickle 的类。使用旧协议(protocol)时,会出现难以追踪的错误。我想为类的用户省去一些调试痛苦,所以我希望类在使用小于 2 的协议(protocol)进行 pickle 时立即引发异常。

我该怎么做?

最佳答案

您可以实现 __reduce_ex__()你类的方法。它接收一个参数,即协议(protocol)版本。如果版本不是 2,只需引发异常。

关于Python:确保我的类只使用最新的协议(protocol)进行 pickle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5570680/

相关文章:

python - 在 Python 3 中 pickle 关键字参数

python - 列表赋值超出范围 - Python

python - 在 Python 中连接两个 32 位 int 以获得 64 位长

python - 如何使用 Arelle 的 Python API 仅从 XBRL 文件中提取财务报表?

python - 如何在 "stop"和 "resume"长时间运行Python脚本?

java - 保存游戏(Android 应用程序)

Python3 unpickle 字节对象的字符串表示

python - Pickle序列化顺序之谜

python - 大数与长整数之间的除法 : how to bypass float conversion?

python - Flask 在被请求太频繁时给出 "error 32 broken pipe"