python 子类
我现在有一个叫做Polynomial的类,它的初始化看起来是这样的:
def __init__(self, *termpairs):
self.termdict = dict(termpairs)
我通过把指数作为键,把对应的系数作为值来创建一个多项式。要创建这个类的一个实例,你可以这样输入:
d1 = Polynomial((5,1), (3,-4), (2,10))
这样就会生成一个字典,像这样:
{2: 10, 3: -4, 5: 1}
现在,我想创建一个Polynomial类的子类,叫做Quadratic。我想在Quadratic类的构造函数中调用Polynomial类的构造函数,但我不太确定该怎么做。我尝试过的方法是:
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
Polynomial.__init__(self, quadratic[2], linear[1], constant[0])
但是我遇到了错误,有人能给我一些建议吗?我觉得在调用Polynomial类的构造函数时,我使用的参数可能不对。
2 个回答
15
你应该使用 super()
,而不是直接使用构造函数。
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
super(Quadratic, self).__init__(quadratic[2], linear[1], constant[0])
11
你可能想要这个
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
Polynomial.__init__(self, (2, quadratic), (1, linear), (0, constant))