如何在搁置中存储实例对象?

How to store an instance object in shelve?

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

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

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

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

货架不存储对内存中实例的引用。它们使用 pickle 序列化对象并存储序列化表示,稍后可以从中重新创建对象。如果 shelve 试图存储引用(并且试图存储 "the underlying object instance" 会遇到类似的问题),那么 shelve 将无法完成它的工作。