Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ExtendedDict(dict):
- def __setitem__(self, key, value):
- if isinstance(key, str):
- super().__setitem__(key, value)
- else:
- raise ValueError
- def __setattr__(self, key, value):
- if isinstance(key, str):
- self[key] = value
- else:
- raise ValueError
- def __getitem__(self, key):
- if isinstance(key, slice):
- list_sort = sorted(self.items(), key=lambda val: val[0])
- return list_sort[key.start:key.stop:key.step]
- elif key in self:
- return super().__getitem__(key)
- elif not isinstance(key, str):
- raise ValueError
- else:
- raise KeyError
- def __getattr__(self, key):
- if key in self:
- return self.get(key)
- elif not isinstance(key, str):
- raise ValueError
- else:
- raise KeyError
- def __delitem__(self, key):
- if key in self:
- super().__delitem__(key)
- elif not isinstance(key, str):
- raise ValueError
- else:
- raise KeyError
- def __delattr__(self, key):
- if key in self:
- del self[key]
- elif not isinstance(key, str):
- raise ValueError
- else:
- raise KeyError
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement