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

时间:2019-11-02 19:23:50

标签: python python-3.x multiple-inheritance

创建类时,输入之一是要从中继承的基类的元组。

例如,

class K(str, list, dict):
    pass

...或...

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

我想要一个类继承自另一个类所做的所有相同类。 inspect.getmro()返回的结果比简单的元组复杂得多,在简单的元组中,每个元素都是一个类。

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

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

如何从方法解析顺序中获取基类的元组?我想知道是否可以编写如下内容:

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

1 个答案:

答案 0 :(得分:4)

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

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