shelf membership

Aaron Brady acb at uchicago.edu
Sat Mar 31 18:02:19 EDT 2007


can you shelve objects with membership?

this gives you:

TypeError: object does not support item assignment
dict 0 True
Exception exceptions.TypeError: 'object does not support item assignment' 
in  ignored

> ignored is a bit mysterious.  tx in advance.

from shelve import *
class MyShelf(DbfilenameShelf):
  	def __init__(self, filename, flag='c', protocol=None, 
writeback=False, binary=None):
  		self.__dict__['ready']=False
  		DbfilenameShelf.__init__(self, filename, flag, protocol, 
writeback, binary)
  		self.ready=True
  	def __setattr__(self,name,value):
  		if not self.ready:
  			self.__dict__[name]=value
  		else:
  			print name, value, self.ready
  			self.__dict__[name]=value
  			DbfilenameShelf.__setitem__(self,name,value)

def open(filename, flag='c', protocol=None, writeback=False, binary=None):
      return MyShelf(filename, flag, protocol, writeback, binary)




More information about the Python-list mailing list