A
Adonis
I am subclassing the dict object, and having it serialize itself to disk for
later access, but I am having some trouble with accessing the self._filename
attribute, when the object is first created it functions fine, but when I
access it on a later time, self._filename is not present, how can I go about
this knowing that when objects are serialized they are not initialized on
subsequent access? I was under the impression that everything in an objects
scope was serialized by pickle, or is my assumption wrong?
Any help is greatly appreciated.
Adonis
----
Error:
File "data.py", line 9, in _sync
data = open(self._filename, 'w')
AttributeError: 'Driver' object has no attribute '_filename'
Code:
import cPickle
class Driver(dict):
def _sync(self):
data = open(self._filename, 'w')
cPickle.dump(self, data, -1)
data.close()
def __delitem__(self, key):
dict.__delitem__(self, key)
self._sync()
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
self._sync()
def __init__(self, filename="appweb.data"):
dict.__init__(self)
if os.path.exists(filename):
data = open(filename)
self = cPickle.load(data)
data.close()
self._filename = filename
later access, but I am having some trouble with accessing the self._filename
attribute, when the object is first created it functions fine, but when I
access it on a later time, self._filename is not present, how can I go about
this knowing that when objects are serialized they are not initialized on
subsequent access? I was under the impression that everything in an objects
scope was serialized by pickle, or is my assumption wrong?
Any help is greatly appreciated.
Adonis
----
Error:
File "data.py", line 9, in _sync
data = open(self._filename, 'w')
AttributeError: 'Driver' object has no attribute '_filename'
Code:
import cPickle
class Driver(dict):
def _sync(self):
data = open(self._filename, 'w')
cPickle.dump(self, data, -1)
data.close()
def __delitem__(self, key):
dict.__delitem__(self, key)
self._sync()
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
self._sync()
def __init__(self, filename="appweb.data"):
dict.__init__(self)
if os.path.exists(filename):
data = open(filename)
self = cPickle.load(data)
data.close()
self._filename = filename