Pickle是否可以处理多个对象引用

Pickle是否可以处理多个对象引用,第1张

Pickle是否可以处理多个对象引用

是的,共享库只会被序列化一次(pickle协议甚至可以处理循环引用)。

从文档中:

pickle
模块跟踪已序列化的对象,因此以后对同一对象的引用将不会再次序列化。
marshal
不这样做。

这对递归对象和对象共享都有影响。递归对象是包含对其自身的引用的对象。这些不是由处理的

marshal
,实际上,尝试封送递归对象将使您的Python解释器崩溃。当要序列化的对象层次结构中的不同位置存在对同一对象的多个引用时,就会发生对象共享。
pickle

仅将此类对象存储一次,并确保所有其他引用都指向主副本。共享的对象保持共享状态,这对于可变对象非常重要。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5668535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存