instance1 = class_A()
shelve["key1"] = instance1
因此,instance1
是对存储在内存中的 class_A
实例的引用。
上面的代码是否取消引用instance1
并将底层对象实例存储在shelve中?或者它只存储引用?
因为我不想只存储引用instance1
,当程序关闭时,底层对象被释放,然后instance1
引用在下一个程序中变得无效开始。
最佳答案
架子不存储对内存中实例的引用。它们使用 pickle 序列化对象并存储序列化表示,以便稍后可以从中重新创建对象。如果 shelve
尝试存储引用,它就不可能完成其工作(并且尝试存储“底层对象实例”会遇到类似的问题)。
关于python - 如何将实例对象存储在架子中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261978/