samwyse wrote:
I need a dict-like object that, if it doesn't contain a key, will
return the value from a "parent" object. Is there an easy way to do
this so I don't have to define __getitem__ and __contains__ and others
that I haven't even thought of yet? Here's a use case, if you're
confused:
en_GB=mydict()
en_US=mydict(en_GB)
en_GB['bonnet']='part of your car'
print en_US['bonnet'] # prints 'part of your car'
en_US['bonnet']='a type of hat'
print en_US['bonnet'] # prints 'a type of hat'
print en_GB['bonnet'] # prints 'part of your car'
For that specific case:
def lookup(key):
try: return en_US[key]
except KeyError: return en_GB[key]
More generally,
def make_lookup_with_backup(d1, d2):
def _l(key):
try: return d1[key]
except KeyError: return d2[key]
return _
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list