9

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

上下文:我正在编写一个 Python->Java 编译器是为了好玩,我只是想看看这个决定背后是否有任何理由,以便我可以在我的代码中列出这些理由。

4

1 回答 1

1

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

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

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

该模块提供了抽象基类,可以用来测试一个类是否提供了特定的接口;例如,它是可散列的还是映射的。

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

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

于 2015-05-10T11:24:13.697 回答