Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to achieve the functionality of UserDict.DictMixin in Python 3?

In Python 3 the UserDict.DictMixin class was moved to the collections module. The docs suggest using collections.MutableMapping in its place, however this abstract class does not provide a number of the methods that the DictMixin does/did.

Is there another (or better) way to define them short of grabbing a private copy of the UserDict.Mixin source for importing — or perhaps just copying the needed portions of it — into my own dictionary-like class?

like image 544
martineau Avatar asked Jun 22 '12 22:06

martineau


1 Answers

The "number of methods" are specifically __len__ and __iter__ so the additional work is not that much.

def __len__(self):
    return len(self.mylist)

def __iter__(self):
    for i in self.mylist:
        yield i

Should work, I think (untested, though).

like image 195
Lennart Regebro Avatar answered Nov 03 '22 02:11

Lennart Regebro