问题描述
我有一个父类,它是一个称为“曲线”的抽象基类。它包含一些离散曲线的x和y值,以及一些其他属性和抽象方法。然后,我有了子类,这些子类针对不同类型的曲线(例如“圆”和“线”)填充这些属性。现在,我要创建另一个称为“函数”的类,它是特定类型曲线的子类,并包含该曲线上函数的值以及用于计算这些值的方法。
是否有一种方法可以根据实例化输入从一个曲线子类中动态继承,例如fct_circ = function("circle")
是圆的子类,而fct_line = function("line")
是直线的子类?以这种方式设置类甚至有意义吗?
解决方法
您可能有一个带有内部类的工厂方法,该方法返回具有动态父级的实例,如下所示:
def function(curve):
class CurveFunction(curve):
# implement
return CurveFunction
circleFunction = function(Circle)
然后,您还可以为不同的曲线实现某种大小写匹配,并相应地返回每个CurveFunction
。