7

現在、Polynomialというクラスがあります。初期化は、次のようになります。

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 に答える