有没有一种方法可以让子类根据 python 中的输入从不同的父类继承?

Is there a way for a subclass to inherit from different parents based on input in python?

我有一个父项 class,它是一个名为“曲线”的抽象基础 class。它包含一些离散曲线的 x 和 y 值,以及一些其他属性和抽象方法。然后我有 subclasses 为不同类型的曲线填充这些属性,比如“圆”和“线”。现在我想创建另一个 class 称为“函数”,它是特定类型曲线的子 class,并包含该曲线上的函数值和计算这些值的方法。

有没有办法根据实例化输入动态继承其中一个曲线子class,比如fct_circ = function("circle")是圆的子类,但fct_line = function("line")是subclass 行?以这种方式设置 classes 是否有意义?

您可以拥有一个带有内部 class 的工厂方法,其中 return 是一个具有动态父级的实例,如下所示:

def function(curve):
        
   class CurveFunction(curve): 
      # implement

   return CurveFunction

circleFunction = function(Circle)

然后您还可以针对不同的曲线实施某种大小写匹配,并且 return 每个 CurveFunction 相应地。