instance1 = class_A()
shelve["key1"] = instance1
So instance1 is a reference to an instance of class_A stored in memory.
Does the above code dereferences the reference instance1 and stores the underlying object instance in shelve? Or does it only store the reference?
Because I don't want to store just the reference instance1 and when the program closes, the underlying object gets released, then the instance1 reference becomes invalid on next program start.
Shelves don't store references to in-memory instances. They serialize objects with
pickleand store serialized representations, from which objects can later be recreated. It would be impossible forshelveto do its job if it tried to store references (and trying to store "the underlying object instance" runs into similar problems).