首页 > 解决方案 > 为什么 AbstractSet 不包含并集和交集?

问题描述

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

标签: pythonpython-3.xsetabstract-classtyping

解决方案


权威来源

PEP 3119定义了抽象基类。

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

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


推荐阅读