为什么集合ABC模块中的Callable ABC?

Oct*_*ami 9 python abc

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

上下文:我正在编写一个Python-> Java编译器以获得乐趣,我只是想看看决策背后是否有任何推理,所以我可以在我的代码中列出该推理.

vis*_*olf 3

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

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

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

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

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

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