2016-11-18 4 views
1

현재 파이썬에서 2 차 방정식을 만들기위한 클래스를 만들고 있습니다. 클래스 내에서 판별 함수를 썼는데, 나는 뿌리 함수 내에서 그 함수를 호출하려고합니다. 그러나 확실하게 어떻게해야하는지 잘 모르겠습니다. 속성 오류가 발생합니다.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()