Len*_*nse 6 python collections abc
我正在查看非常好的集合库,更具体的是抽象基类(ABC)。其中一个我无法理解:MappingView。
有关文档,请参阅集合
MappingView本质上是用户定义视图的基类。它Sized通过提供__len__其成员长度的属性来实现接口_mapping,因此,如果此实现适合您,则无需实现您自己的__len__.
它保存KeysView、ItemsView和的通用代码ValuesView。my_dict.keys()这些最后的类可以在任何需要像,my_dict.items()或 之类的视图的地方使用my_dict.values()。如果您创建一种新的用户定义类型的数据,并且想要创建一个既不能与keys、values或进行比较的视图items,那么您可以MappingView直接子类化并以不同的方式实现__contains__和__iter__函数。