Python 集合.MappingView

标签 python collections abc

我正在查看非常好的集合库,更具体的是抽象基类(ABC)。我无法理解的一个:MappingView。

  • 它的用途是什么?它比 Sized 有什么优势?也许是一个例子?
  • 文档说它的基类是 Sized,但另一方面有一个 长度 mixin...所以我们必须实现长度 , 或不?

  • 有关文档,请参阅 collections

    最佳答案

    MappingView 本质上是用户定义 View 的基类。它实现了 Sized通过提供 __len__ 接口(interface)属性是其_mapping的长度成员,所以如果这个实现适合你,你不需要实现你自己的__len__ .
    它拥有 KeysView 的通用代码, ItemsViewValuesView .这些最后的类可以用于像 my_dict.keys() 这样的 View 。 , my_dict.items()my_dict.values()将是预期的。如果您创建了一种新的用户定义类型的数据,并且想要创建一个既无法与 keys 进行比较的 View , , valuesitems , 那么你可以继承 MappingView直接并以不同方式实现 __contains____iter__职能。

    关于Python 集合.MappingView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052294/

    相关文章:

    python - 实例化抽象类时没有错误,即使没有实现抽象方法

    python - 将 Pandas Dataframe 转换为嵌套字典

    python - 删除边界线上方的图像顶部以检测文本文档

    ruby-on-rails - Rails 部分集合为空?

    java - 哪个 Collection 会这样做?

    c++ - 什么是 "nearly-empty"类?

    python - 如何使用类外部的函数作为类内部的属性?

    python - 将 django-mssql 连接到 mssql 服务器(azure)

    python - 实例化由多个 ModelSerializer 组成的 Serializer - Django Rest Framework

    c# - 枚举集合的不同方法