Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | None | 0 0
  1. class ExtendedDict(dict):
  2.     def __setitem__(self, key, value):
  3.         if isinstance(key, str):
  4.             super().__setitem__(key, value)
  5.         else:
  6.             raise ValueError
  7.  
  8.     def __setattr__(self, key, value):
  9.         if isinstance(key, str):
  10.             self[key] = value
  11.         else:
  12.             raise ValueError
  13.  
  14.     def __getitem__(self, key):
  15.         if isinstance(key, slice):
  16.             list_sort = sorted(self.items(), key=lambda val: val[0])
  17.             return list_sort[key.start:key.stop:key.step]
  18.         elif key in self:
  19.             return super().__getitem__(key)
  20.         elif not isinstance(key, str):
  21.             raise ValueError
  22.         else:
  23.             raise KeyError
  24.  
  25.     def __getattr__(self, key):
  26.         if key in self:
  27.             return self.get(key)
  28.         elif not isinstance(key, str):
  29.             raise ValueError
  30.         else:
  31.             raise KeyError
  32.  
  33.     def __delitem__(self, key):
  34.         if key in self:
  35.             super().__delitem__(key)
  36.         elif not isinstance(key, str):
  37.             raise ValueError
  38.         else:
  39.             raise KeyError
  40.  
  41.     def __delattr__(self, key):
  42.         if key in self:
  43.             del self[key]
  44.         elif not isinstance(key, str):
  45.             raise ValueError
  46.         else:
  47.             raise KeyError
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement