Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. class ChainedDicts(dict):
  2. def __init__(self, *dicts):
  3. self.dicts = dicts
  4. self.base = {}
  5.  
  6. def __getitem__(self, item):
  7. if item in self.base:
  8. return self.base[item]
  9. elif item not in self.dicts[0]:
  10. raise KeyError
  11. for internal_dict in self.dicts:
  12. if item in internal_dict:
  13. item = internal_dict[item]
  14. else:
  15. return item
  16. return item
  17.  
  18. def __setitem__(self, key, value):
  19. self.base[key] = value
  20.  
  21.  
  22. def __delitem__(self, key):
  23. if key in self.base:
  24. del self.base[key]
  25. if key in self.dicts[0]:
  26. del self.dicts[0][key]
  27.  
  28.  
  29. d = ChainedDicts({1: 2, 3: 4}, {4: 5, 6: 8})
  30.  
  31. print(d[1])
  32. print(d[3])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement