trap attributeError from inside a dict ?

GrelEns grelens at NOSPAMyahoo.NOTNEEDEDfr
Wed Mar 10 09:27:48 CET 2004


hello,

i would like if this behaviour can be obtained from python : trap an
attributeError from inside a subclassing dict class... (here is a silly
examples to explain my question)

class Test(dict):
 """subclassing a dict and each key will permit access to a tuple of fized
size"""
 def __init__(self):
  pass
 def load(self, adict):
  """actually it will be done from a text file with fixed size fields, each
tuple will have the same size"""
  for k in adict:
   self[k] = tuple(adict[k])

t = Test()
t.load({1: ('a', 'aa'), 2: ('(b', 'bb')})

here is what i would have :
>>> t[1].get('first')
'a'

without having to define tuple as an object or subclassing tuple, of course
now i had :
>>> t[1].get('first')

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in -toplevel-
    t['A'].get('first')
AttributeError: 'tuple' object has no attribute 'get'

is it possible ?

btw my question is something like is there a way from inside Test code to
say to python that when it first get t[1] it should not go further, trap the
things one ask to do on t[key] and then calling a function such as

(inside Test)
    def __get(self, key, readable):
        mapping = {'first' : 1, 'second' : 2}
        return self[key][mapping[readable]]

(maybe it is a silly design...but i need this because i do want some kind of
readable object access without having to create all these objects)





More information about the Python-list mailing list