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

可紊 提交于 2019-12-01 01:44:22

问题


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?


回答1:


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).



来源:https://stackoverflow.com/questions/11165188/how-to-achieve-the-functionality-of-userdict-dictmixin-in-python-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!