报告继承自两个基类并且这两个基类具有不兼容的不相交基 (PEP 800) 的类。
当一个类带有 @typing.disjoint_base 装饰器或具有非空的 __slots__ 特性(包括使用 slots=True 创建的数据类)时,该类就是一个不相交基。 许多内置类型,例如 int、str、float、tuple、list、dict 等,都是不相交基。
如果两个类各自追溯到不同、不相关的不相交基,它们就不能共享一个公共子类 — 由于内存布局不兼容,Python 在运行时会引发 TypeError。
示例:
class A:
__slots__ = ('x',)
class B:
__slots__ = ('y',)
class C(A, B): # 错误:A 和 B 具有不兼容的不相交基
pass
共享公共不相交基上级的类(例如,同一个槽类的两个子类)不会被标记。