如何将输出“__main__.Book对象”转换为字符串?

时间:2014-02-11 19:37:05

标签: python string object

当我想要打印我的对象时,我只得到:

>>> 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)

但它不起作用! 我真的很感激一些帮助。

2 个答案:

答案 0 :(得分:3)

您的__str____repr__应该有效,并提供:

  1. 您在正确的班级(Book);
  2. 中定义它们
  3. 您修复了格式说明符与参数不匹配的错误。

答案 1 :(得分:1)

print(LIB.get_book("Synantrop"))

应该有效。只有在传递要打印的对象时才会调用 str 功能。如果你不这样做,它就会返回get_book返回的任何值