Sometimes, we want to override a dict with Python.
In this article, we’ll look at how to override a dict with Python.
How to override a dict with Python?
To override a dict with Python, we can create a subclass of the MutableMapping
class.
For instance, we weite
from collections.abc import MutableMapping
class TransformedDict(MutableMapping):
def __init__(self, *args, **kwargs):
self.store = dict()
self.update(dict(*args, **kwargs))
def __getitem__(self, key):
return self.store[self._keytransform(key)]
def __setitem__(self, key, value):
self.store[self._keytransform(key)] = value
def __delitem__(self, key):
del self.store[self._keytransform(key)]
def __iter__(self):
return iter(self.store)
def __len__(self):
return len(self.store)
def _keytransform(self, key):
return key
to create a TransformedDict
class that is a subclass of the MutableMapping
.
We use a dict as the value of the store
instance variable.
And then we manipulate it in the instance methods to create our own behavior for a TransformedDict
dict.
The __getitem__
method is used to get the item from the store
dict.
__setitem__
sets the item in the store
.
__delitem__
deletes an itemn with the key
from the store
dict.
__iter__
returns an iterator from the store
dict.
__len__
returns the length of the dict.
And _keytransform
transforms the dict key
to our liking.
Conclusion
To override a dict with Python, we can create a subclass of the MutableMapping
class.