有没有一种方法可以让子类根据 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
相应地。
我有一个父项 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
相应地。