python子类

me4*_*e45 7 python inheritance subclass quadratic

我目前有一个叫做Polynomial的类,初始化看起来像这样:

def __init__(self, *termpairs):
    self.termdict = dict(termpairs) 
Run Code Online (Sandbox Code Playgroud)

我通过使键成为指数并且相关的值是系数来创建多项式.要创建此类的实例,请输入如下内容:

d1 = Polynomial((5,1), (3,-4), (2,10))
Run Code Online (Sandbox Code Playgroud)

这使得字典如此:

{2: 10, 3: -4, 5: 1}
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个名为Quadratic的Polynomial类的子类.我想在Quadratic类构造函数中调用Polynomial类构造函数,但是我不太清楚如何做到这一点.我试过的是:

class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
    Polynomial.__init__(self, quadratic[2], linear[1], constant[0])
Run Code Online (Sandbox Code Playgroud)

但我得到错误,任何人都有任何提示?当我调用Polynomial类构造函数时,我觉得我使用了不正确的参数.

Joh*_*Doe 15

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

class Quadratic(Polynomial):
    def __init__(self, quadratic, linear, constant):
       super(Quadratic, self).__init__(quadratic[2], linear[1], constant[0])
Run Code Online (Sandbox Code Playgroud)


Cit*_*ito 11

你可能想要

class Quadratic(Polynomial):
    def __init__(self, quadratic, linear, constant):
        Polynomial.__init__(self, (2, quadratic), (1, linear), (0, constant))
Run Code Online (Sandbox Code Playgroud)