2013-12-09 90 views
2

我很新的蟒蛇,我試圖創建一個基本的Python計算器類型錯誤:這個構造函數沒有參數

#!/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

HI 感謝您的幫助。 但是我運行這個,我輸入了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

請使用input代替raw_input

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

raw_input默認情況下需要的字符串。

+2

-1:這是2.x特有的,在2.x中是危險的*,並且忽略了OP已經實現了一些顯式轉換的事實(實際上並不是使用* it ),這是首選。 –

相關問題