How to create a custom mappable container (dictionary-like) type in Python.

from UserDict import DictMixin

class MyDict(DictMixin):
# MyDict only needs to implement getitem, setitem, delitem and keys (at a
# minimum) and UserDict will provide the rest of the standard dictionary
# methods based on these four.
#
# getitem and delitem should raise KeyError if no item exists for the given
# key. getitem, setitem and delitem should raise TypeError if the given key
# is of the wrong type.

def __getitem__(self, key):
….

def __setitem__(self, key, item):
….

def __delitem__(self, key):
….

def keys(self):
….

# You can now use your class as if it was a dict, using the standard container
# operators and dictionary methods.

d = MyDict()
d[key] = value
d.get(key)
d.clear()
etc.

Leave a Reply

Your email address will not be published. Required fields are marked *