为什么 AbstractSet 不包含并集和交集?

Ala*_*lan 6 python abstract-class typing set python-3.x

是否有记录的理由将union和排除intersection在 和 的定义方法abc.Set之外typing.AbstractSet?结果,我经常不得不在Union[Set,FrozenSet]我期望能够使用的地方使用AbstractSet. 鉴于文档建议优先考虑AbstractSet参数类型注释,这尤其令人费解。

Ray*_*ger 2

权威来源

PEP 3119定义了抽象基类。

总体设计目标是“ABC 定义了一组最小的方法,用于建立类型的特征行为。根据 ABC 类型区分对象的代码可以相信这些方法将始终存在。”

最小abc.Set API的具体原理仅顺便提及,“不支持在 Python 2 中的集合类型上找到的 issubset 和 issuperset 方法,因为这些方法大多只是 __le__ 和 __ge__ 的别名”,以及“这个 ABC不提供内置具体集合类型上存在的执行(几乎)相同操作的命名方法。”