在Python 3中,UserDict.DictMixin
类被移动到了collections
模块。文档建议使用collections.MutableMapping
来替代它,然而这个抽象类并没有提供一些DictMixin
所拥有的方法。
除了获取私有副本进行导入或者仅复制所需部分到自己的类中这种方式之外,还有其他(或更好的)方法来定义这些方法吗?
在Python 3中,UserDict.DictMixin
类被移动到了collections
模块。文档建议使用collections.MutableMapping
来替代它,然而这个抽象类并没有提供一些DictMixin
所拥有的方法。
除了获取私有副本进行导入或者仅复制所需部分到自己的类中这种方式之外,还有其他(或更好的)方法来定义这些方法吗?
__len__
和 __iter__
方法,因此额外的工作并不多。def __len__(self):
return len(self.mylist)
def __iter__(self):
for i in self.mylist:
yield i
__len__
不会导致无限递归吗? - Thomas K__setitem__
。 - Andy Hayden__setitem__
,因此基于 DictMixin 的类应该已经有了它们。__delitem__
和 __getitem__
也是如此。 - Lennart Regebro__len__
和__iter__
。它们不像我之前认为的那样是可选的。 - Lennart Regebro