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

时间:2015-04-20 23:25:39

标签: python abc

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

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

1 个答案:

答案 0 :(得分:1)

该模块源自PEP-3119,其建议:

  

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

但从那以后,它逐渐发展成为更多的东西。现在,模块描述没有明确提及包含器和迭代器。它说:

  

该模块提供了抽象基类,可用于测试类是否提供特定接口;例如,它是否可以清除或是否是映射。

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

  

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