UserDict和Dict之间有什么区别吗?

时间:2010-01-18 01:56:44

标签: python

如果我希望某个类有字典行为,我为什么要继承dictUserDict

1 个答案:

答案 0 :(得分:8)

您可以在任何版本为2.2或更高版本的Python中继承dict,但您必须覆盖所有感兴趣的方法 - 例如,覆盖__getitem__不是get使用,除非你也覆盖那个,依此类推。

UserDict.DictMixin混合可以追溯到更远的地方,让您只实现几种方法:其他方法,由混合提供,提取并使用你自己的重写。但请注意the docs

  

从Python 2.6开始,它   建议使用   collections.MutableMapping而不是   DictMixin。

collections模块中的新ABCs(抽象基类)与良好的旧UserDict.DictMixin具有相同的优点,适用性更广,规律性更强。