2013-12-09 2 views
2

인수가없는 나는 기본 파이썬 계산기형식 오류 :이 생성자는 내가 파이썬에 아주 새로운 오전

#!/usr/bin/env python 

class Calculator: 
    def __int__(self,x,y): 
     self.x = x 
     self.y = y 
    def add(self): 
     return self.x + self.y 
    def sub(self): 
     return self.x - self.y 
    def multi(self): 
     return self.x * self.y 
    def div(self): 
     return self.x/self.y 

    def convert(self,a,b): 
     try: 
      int_a = int(a) 
      int_b = int(b) 
     except ValueError: 
      int_a = float(a) 
      int_b = float(b) 
     return int_a,int_b 

run = True 

while run: 
    print "Please choose what you'd like to do:" 
    print "0: Addition" 
    print "1: Subtraction" 
    print "2: Multiplication" 
    print "3: Division" 
    print "4: Quit Application" 

    choice = raw_input() 

    if choice == "0": 
     str_a = raw_input("Enter 1st number : ") 
     str_b = raw_input("Enter 2nd number : ") 
     c = Calculator(str_a,str_b) 
     c.add() 

를 만들려고했지만 나는 아래와 같은 오류가 점점 오전 :

c = Calculator(str_a,str_b) 
TypeError: this constructor takes no arguments 

하시기 바랍니다 사람 이 문제를 해결할 수 있도록 도와주세요.

+10

'__init__'의 철자가 잘못되었습니다. – Blender

+3

이 질문은 이니셜 라이저 이름에 대한 간단한 오타이기 때문에 주제와 관련이없는 것처럼 보입니다. –

+0

안녕하세요 도와 주셔서 감사합니다. 하지만 이것을 실행하면 2 개의 숫자를 입력하고 그 add()에 return을 사용했습니다. 그러나 나는 화면에 어떤 대답도 얻지 못하고있다. – bentech4u

답변

1

다음은 내가 원하는 것을 얻을 수있는 해결책입니다.

#!/usr/bin/env python 

    class Calculator: 
     def __init__(self,x,y): 
      self.x = int(x) 
      self.y = int(y) 
     def add(self): 
      return self.x + self.y 
     def sub(self): 
      return self.x - self.y 
     def multi(self): 
      return self.x * self.y 
     def div(self): 
      return self.x/self.y 

     def convert(self,a,b): 
      try: 
       int_a = int(a) 
       int_b = int(b) 
      except ValueError: 
       int_a = float(a) 
       int_b = float(b) 
      return int_a,int_b 

    run = True 

    while run: 
     print "Please choose what you'd like to do:" 
     print "0: Addition" 
     print "1: Subtraction" 
     print "2: Multiplication" 
     print "3: Division" 
     print "4: Quit Application" 

     choice = raw_input() 

     if choice == "0": 
      str_a = raw_input("Enter 1st number : ") 
      str_b = raw_input("Enter 2nd number : ") 
      c = Calculator(str_a,str_b) 
      print c.add() 
-1

str_a = input("Enter 1st number : ") 
    str_b = input("Enter 2nd number : ") 

raw_input는 기본적으로 문자열을 사용 input 대신 raw_input의 사용하십시오.

+2

-1 :이 2.x에서 특정은, * 위험 2.X에서 * 및 영업 이익이 이미 명시 적으로 변환하는 뭔가를 구현했다는 사실을 무시 (단지 * 사용하여 * 아직 실제로 아니다)가 선호됩니다. –

관련 문제