Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ChainedDicts(dict):
- def __init__(self, *dicts):
- self.dicts = dicts
- self.base = {}
- def __getitem__(self, item):
- if item in self.base:
- return self.base[item]
- elif item not in self.dicts[0]:
- raise KeyError
- for internal_dict in self.dicts:
- if item in internal_dict:
- item = internal_dict[item]
- else:
- return item
- return item
- def __setitem__(self, key, value):
- self.base[key] = value
- def __delitem__(self, key):
- if key in self.base:
- del self.base[key]
- if key in self.dicts[0]:
- del self.dicts[0][key]
- d = ChainedDicts({1: 2, 3: 4}, {4: 5, 6: 8})
- print(d[1])
- print(d[3])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement