如何让一个 class 继承另一个 class 所做的所有相同的 classes

How to get a class to inherit from all of the same classes that another class does

当您创建 class 时,其中一个输入是要继承的基本 classes 的元组。

例如,

class K(str, list, dict):
    pass

...或者...

Klass = type("Klass", (Class1, Class2, Class3), dict())

我想要一个 class 继承另一个 class 所做的所有相同的 classes。 inspect.getmro() returns 比每个元素都是 class.

的简单元组复杂得多的东西

假设我们想要相同的方法解析顺序。

def mro2tuple(_mro):
    # MAGIC HAPPENS HERE
    return tuppy

我们如何从方法解析顺序中得到基 classes 的元组?我想知道我是否可以写如下内容:

import inspect
Klass1_mro = inspect.getmro(Klass1)
bases = mro2tuple(Klass1_mro):
Klass2 = type("Klass2", bases, dict())

您不应该尝试从 mro 继承,仅从其他 class 的基础继承就足够了。

new_class = type('Newclass', old_class.__bases__, {})