如何让一个 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__, {})
当您创建 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__, {})