object persistency, store instances relationship externally

King animator333 at gmail.com
Fri Jul 25 07:33:01 CEST 2008


This is a new test for object persistency. I am trying to store the
relationship between instances externally.
It's not working as expected. May be I am doing it in wrong way. Any
suggestions?


import shelve

class attrib(object):
    pass

class node(object):
    def __init__(self):
        self.a = attrib()
        self.b = attrib()
        self.c = attrib()
        self.d = attrib()

a = node()
#store pair relationship. This relationship is created at run time.
lst = [[a.a, a.b], [a.c, a.d]]
#Write objects into file
shelf = shelve.open('shelve_test_01.txt', writeback=True)
shelf['node'] = a
shelf['lst'] = lst
shelf.sync()
shelf.close()


#Read objects from file
shelf = shelve.open('shelve_test_01.txt', 'r')
a = shelf['node']
lst = shelf['lst']
print a.a, a.b, a.c, a.d
#lst does not contains the relationship of object 'a''s attributes,
instead it's creating new instances
#of 'attrib' class
print lst




More information about the Python-list mailing list