【问题标题】:Is there a way for a subclass to inherit from different parents based on input in python?有没有办法让子类根据 python 中的输入从不同的父类继承?
【发布时间】:2020-08-20 01:24:59
【问题描述】:

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

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

【问题讨论】:

    标签: python python-3.x oop inheritance subclass


    【解决方案1】:

    你可以有一个带有内部类的工厂方法,它返回一个带有动态父级的实例,如下所示:

    def function(curve):
            
       class CurveFunction(curve): 
          # implement
    
       return CurveFunction
    
    circleFunction = function(Circle)
    

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

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2021-07-24
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      相关资源
      最近更新 更多