我正在查看非常好的集合库,更具体的是抽象基类(ABC)。我无法理解的一个:MappingView。
有关文档,请参阅 collections
最佳答案
MappingView
本质上是用户定义 View 的基类。它实现了 Sized
通过提供 __len__
接口(interface)属性是其_mapping
的长度成员,所以如果这个实现适合你,你不需要实现你自己的__len__
.
它拥有 KeysView
的通用代码, ItemsView
和 ValuesView
.这些最后的类可以用于像 my_dict.keys()
这样的 View 。 , my_dict.items()
或 my_dict.values()
将是预期的。如果您创建了一种新的用户定义类型的数据,并且想要创建一个既无法与 keys
进行比较的 View , , values
或 items
, 那么你可以继承 MappingView
直接并以不同方式实现 __contains__
和 __iter__
职能。
关于Python 集合.MappingView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052294/