2016-10-28 131 views
0

我想編寫一個類計算器包括:的Python:創建一個計算器類

  • 一個名爲add函數,它包含雙值的兩個參數,並返回它們的和
  • 一個名爲subtract函數有兩個包含雙精度值的參數並返回它們的差值(從第一個中減去第二個值)
  • 函數名爲multiply,它取兩個包含雙精度值的參數並返回它們的產品
  • 函數叫做divide,它接受兩個包含double值的參數,並返回第一個除以第二個的值。如果第二個數字是零,不要分割,並返回「你不能被零除!」

這是我的嘗試,但顯然這是不正確的。

class Calculator: 
    def add(x,y): 
     return x+ y 
    def subtract(x,y): 
     return x - y 
    def multiply(x,y): 
     return x * y 
    def divide(x,y): 
     if y==0: 
      return "You can t divide by zero!" 
     else: 
      return x/y 

從結果中,我得到意想不到的標識符x和y。

+0

請參觀遊覽,並學習如何在您的問題中正確地格式化代碼。 http://stackoverflow.com/tou – kabanus

+0

在Python中,你不會寫一個函數,其中*「接受包含double值的兩個參數並返回它們的總和」*。相反,你寫了一個函數,它「接受兩個參數並返回它們的總和」。無論他們是兩個「雙打」還是兩隻兔子都沒關係。 – zvone

回答

1

python中的對象方法需要顯式定義'''你'從'C'知道的參數,或者引用對象本身的參數。在Python中它通常被稱爲'self'。例如:

class Calc: 
    def add(self,x,y): return x+y 

由於所有的方法並不真正需要的自我,計算器更多的是方法的容器,你可以將它們定義爲類方法,所以Calc.add(3,4)的作品,而無需創建一個對象:

class Calc: 
    @staticmethod 
    def add(x,y): return x+y 

如果您是python的新手,請注意縮進也非常重要。