2014-02-11 60 views
1

當我想打印我的目標,我只得到:如何將輸出「__main__.Book對象」轉換爲字符串?

>>> LIB.get_book("Synantrop") 
<__main__.Book object at 0x102321b50> 

什麼我需要做的就是它作爲一個字符串,而不是? 我試圖

def __repr__(self): 
    return "Book(%d,%r)" % (self.title,self.year,self.author) 

def __str__(self): 
    return "%2d%s" % (self.title,self.year,self.author) 

,但它不工作! 我真的很感謝一些幫助。

+0

交互式提示總是顯示'repr'字符串。 – Keith

回答

3

__str____repr__應該工作,提供:

  1. 你在正確的類(Book)定義它們;
  2. 您修復了格式說明符與參數不匹配的錯誤。
1
print(LIB.get_book("Synantrop")) 

應該工作。 str函數僅在您傳遞對象進行打印時纔會調用。如果你不這樣做,它只會返回任何值get_book返回