如何在搁置中存储实例对象?
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
将无法完成它的工作。
instance1 = class_A()
shelve["key1"] = instance1
因此 instance1
是对存储在内存中的 class_A
实例的引用。
上面的代码是否取消了引用 instance1
并将底层对象实例存储在搁置中?还是只存储引用?
因为我不想只存储引用 instance1
并且当程序关闭时,底层对象被释放,然后 instance1
引用在下一个程序启动时变得无效。
货架不存储对内存中实例的引用。它们使用 pickle
序列化对象并存储序列化表示,稍后可以从中重新创建对象。如果 shelve
试图存储引用(并且试图存储 "the underlying object instance" 会遇到类似的问题),那么 shelve
将无法完成它的工作。