1
instance1 = class_A()
shelve["key1"] = instance1

对存储在内存instance1中的实例的引用也是如此。class_A

上面的代码是否取消引用引用instance1并将底层对象实例存储在搁置中?还是只存储参考?

因为我不想只存储引用instance1,当程序关闭时,底层对象被释放,然后instance1引用在下一次程序启动时变得无效。

4

1 回答 1

1

货架不存储对内存实例的引用。它们使用序列化的表示来序列化对象pickle并存储序列化的表示,以后可以从中重新创建对象。shelve如果它试图存储引用(并且试图存储“底层对象实例”遇到类似的问题),它就不可能完成它的工作。

于 2019-10-07T00:59:31.200 回答