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

问题描述

我有一个父类,它是一个称为“曲线”的抽象基类。它包含一些离散曲线的x和y值,以及一些其他属性和抽象方法。然后,我有了子类,这些子类针对不同类型的曲线(例如“圆”和“线”)填充这些属性。现在,我要创建另一个称为“函数”的类,它是特定类型曲线的子类,并包含该曲线上函数的值以及用于计算这些值的方法

是否有一种方法可以根据实例化输入从一个曲线子类中动态继承,例如fct_circ = function("circle")是圆的子类,而fct_line = function("line")是直线的子类?以这种方式设置类甚至有意义吗?

解决方法

您可能有一个带有内部类的工厂方法,该方法返回具有动态父级的实例,如下所示:

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

   return CurveFunction

circleFunction = function(Circle)

然后,您还可以为不同的曲线实现某种大小写匹配,并相应地返回每个CurveFunction