2014-04-02 82 views
-1
class Duration(object): 
    def __init__(self, minutes, seconds): 
     self.minutes = minutes 
     self.seconds = seconds 

    def get_minutes(self): 
     return self.minutes 
    def get_seconds(self): 
     return self.seconds 
    def total_seconds(self): #This part is wrong 
     return 60*(self.get_minutes()) + self.get_seconds() 

這是我的代碼。對象方向 - 返回值

我想找到總秒數(Duration(3, 30)).total_seconds)應該給我210但現在我得到這個<bound method Duration.total_seconds of <__main__.Duration object at 0x0211AD90>>
如何獲得210

+1

** ** total_seconds是一種方法,你不打電話。您正在獲得參考資料。 – tuxuday

+0

刪除'get'方法,沒有理由,因爲你已經可以很好地訪問'seconds'和'minutes'。 – kindall

回答

0

如果您希望能夠跳過括號,使total_seconds一個property

@property 
def total_seconds(self): 

現在不正是你想要什麼:

>>> Duration(3, 30).total_seconds 
210 
1

沒有什麼不對您,簡單地說,你必須調用,而不是獲取它的方法:

>>> print((Duration(3, 30)).total_seconds()) 
210 

total_seconds()total_seconds 當你調用它沒有(),蟒蛇返回方法的實例但不會調用它。

+2

這是對的。所以原始代碼是正確的,只是'print'調用它是錯誤的。 – rickcnagy

+0

好吧然後如果我想要(持續時間(3,30))。total_seconds)? – user3398505

+0

@ user3398505,這是它會給。你的電話不正確。我展示的是正確的。同樣的結果。 – sshashank124

0

這應該是

print((Duration(3, 30)).total_seconds()) 
            ^^ 

在Python中,功能對象,並且可以被打印。這就是你所看到的。