【问题标题】:Why is the Callable ABC in the collections ABC module?为什么集合 ABC 模块中有 Callable ABC?
【发布时间】:2015-06-27 21:43:48
【问题描述】:

Python collections.abc 模块包含许多方便的 ABC,用于检查对象的各种特征,但其中一个似乎不属于 Callable。没有可调用的标准集合,PEP 3119 没有提供任何推理甚至没有提到 Callable ABC,那么为什么它在这个包中而不是在其他地方呢?

上下文: 我正在编写一个 Python->Java 编译器来取乐,我只是想看看这个决定背后是否有任何推理,以便我可以在我的代码中列出该推理。

【问题讨论】:

  • 一个合理的问题......但是我不确定它实际上与编程和编程问题有关。所以它可能会变得平滑
  • @JoranBeasley 然后我会介绍一些上下文。
  • 它应该在哪里?一个新的functools.abc 模块?那里会很寂寞,不是吗?
  • 也许这是一个线索。目前还没有可调用的集合...!

标签: python abc


【解决方案1】:

该模块源自 PEP-3119,它提出:

容器和迭代器的特定 ABC,将被添加到集合模块中。

但从那以后,它演变成更多的东西。现在模块描述没有明确提到容器和迭代器。它说:

这个模块提供了抽象基类,可以用来测试一个类是否提供了特定的接口;比如是hashable还是mapping。

我相信它是一个 collections 子模块,因为它过去是它的一部分:

3.3 版中的新功能:以前,此模块是集合模块的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2019-05-20
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多