我读到PYHTON将回收ID,这意味着一个新的对象可能会以先前存在且已损坏的对象的ID结束.我还读到了大约pickle本书:

pickle模块跟踪它已经序列化的对象,这样以后对同一对象的引用就不会再次序列化.法警不会这么做的.

如果我持有打开的Pickler的一个实例几分钟,在信息进入时写入单个文件,并在调用Pickler.dump(obj)后立即丢弃它,会不会有这样的风险:新的obj将被赋予同一文件中已写入的另一个的ID,因此意外地写入了错误的内容?

推荐答案

没有发生这种情况的风险,因为备忘录dictincludes是有问题的对象;它的生命周期不会结束,直到酸洗完成并且备忘录词典被清理.

具体地说,在当前的实现中,记忆词典将对象的id映射到2-tuple,其中第一个元素是第二次写入记忆值时要使用的索引,第二个元素是值本身.根据函数中的注释,这是设计的一个特意部分,声明:

该对象存储在Pickler备忘录中,以便在酸洗过程中保持瞬时对象的活动状态.

Python相关问答推荐

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

点到面的Y距离

沿着数组中的轴计算真实条目

按顺序合并2个词典列表

如何制作10,000年及以后的日期时间对象?

Python库:可选地支持numpy类型,而不依赖于numpy

numpy卷积与有效

Streamlit应用程序中的Plotly条形图中未正确显示Y轴刻度

当我try 在django中更新模型时,模型表单数据不可见

使用Python从rotowire中抓取MLB每日阵容

替换现有列名中的字符,而不创建新列

polars:有效的方法来应用函数过滤列的字符串

Polars Group by描述扩展

jsonschema日期格式

Js的查询结果可以在PC Chrome上显示,但不能在Android Chrome、OPERA和EDGE上显示,而两者都可以在Firefox上运行

如何在PythonPandas 中对同一个浮动列进行逐行划分?

为什么在Python中00是一个有效的整数?

在matplotlib中重叠极 map 以创建径向龙卷风图

如何在Pandas中用迭代器求一个序列的平均值?

极点:在固定点扩展窗口