我目前有一个名为Polynomial的类,初始化看起来像这样:
def __init__(self, *termpairs):
self.termdict = dict(termpairs)
我正在创建一个多项式,通过使键成为指数和 相关值是系数。要创建此类的实例,请按以下方式输入:
d1 = Polynomial((5,1), (3,-4), (2,10))
这使得字典如此:
{2: 10, 3: -4, 5: 1}
现在,我想创建一个名为Quadratic的Polynomial类的子类。我想在Quadratic类构造函数中调用Polynomial类构造函数,但是我不太清楚如何做到这一点。我试过的是:
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
Polynomial.__init__(self, quadratic[2], linear[1], constant[0])
但我收到错误,有人有任何提示吗?当我调用Polynomial类构造函数时,我觉得我使用了不正确的参数。
答案 0 :(得分:15)
您还应该使用super()
而不是直接使用构造函数。
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
super(Quadratic, self).__init__(quadratic[2], linear[1], constant[0])
答案 1 :(得分:11)
你可能想要
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
Polynomial.__init__(self, (2, quadratic), (1, linear), (0, constant))