Когда вы создаете класс, один из входных данных является кортежем базовых классов для наследования.
Например,
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())