7

我目前有一个名为多项式的类,初始化如下所示:

def __init__(self, *termpairs):
    self.termdict = dict(termpairs) 

我通过将键设为指数并将相关值设为系数来创建多项式。要创建此类的实例,请输入以下内容:

d1 = Polynomial((5,1), (3,-4), (2,10))

这使得字典像这样:

{2: 10, 3: -4, 5: 1}

现在,我想创建一个名为 Quadratic 的多项式类的子类。我想在 Quadratic 类构造函数中调用 Polynomial 类构造函数,但我不太确定如何执行此操作。我尝试过的是:

class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
    Polynomial.__init__(self, quadratic[2], linear[1], constant[0])

但我收到错误,有人有任何提示吗?当我调用多项式类构造函数时,我觉得我使用了不正确的参数。

4

2 回答 2

15

您还应该使用super()而不是直接使用构造函数。

class Quadratic(Polynomial):
    def __init__(self, quadratic, linear, constant):
       super(Quadratic, self).__init__(quadratic[2], linear[1], constant[0])
于 2011-11-28T00:43:43.930 回答
11

你可能想要

class Quadratic(Polynomial):
    def __init__(self, quadratic, linear, constant):
        Polynomial.__init__(self, (2, quadratic), (1, linear), (0, constant))
于 2011-11-28T00:39:13.223 回答