2016-11-18 19 views
1

私は現在、二次方程式を作るためにPythonでクラスを作成しています。私はクラス内の判別関数を書きましたが、ルーツ関数内でそれを呼び出そうとしていますが、どうやってそれをどうやって行うのかは分かりません。属性エラーが発生しています。Python二次方程式クラス

はAttributeError: '二次方程式' オブジェクトは、あなたのコード内のスペルの間違いがあります何の属性 'discrimiant'

def discriminant(self): 
    return ((self.b)**2) - (4 * self.a * self.c) 

def root1(self): 
    if self.discrimiant() < 0: 
     return None 
    else: 
     return (-self.b + math.sqrt(self.discriminant()))/(2 * self.a) 
def root2(self): 
    if self.discrimiant() < 0: 
     return None 
    else: 
     return (-self.b - math.sqrt(self.discriminant()))/(2 * self.a) 
+1

よく見える –

+2

あなたは問題がありますか? 'self.discriminant()'は正しい呼び出しでしょうか? – danielunderwood

+0

AttributeErrorを取得中: 'QuadraticEquation'オブジェクトに 'discrimiant'属性がありません –

答えて

0

を持っていません。 discriminantではなく、discrimiantです。ここには動作しているコードがあります。

class QuadraticEquation: 
    def __init__(self, a, b, c): 
     self.a = a 
     self.b = b 
     self.c = c 
    def discriminant(self): 
     return ((self.b)**2) - (4 * self.a * self.c) 

    def root1(self): 
     if self.discriminant() < 0: 
      return None 
     else: 
      return (-self.b + math.sqrt(self.discriminant()))/(2 * self.a) 
    def root2(self): 
     if self.discriminant() < 0: 
      return None 
     else: 
      return (-self.b - math.sqrt(self.discriminant()))/(2 * self.a) 

a = QuadraticEquation(1,2,3) 
print a.root1() 
print a.root2() 
print a.discriminant() 
関連する問題