【发布时间】:2016-07-09 09:19:03
【问题描述】:
我有一个要打印到终端的对象,它看起来像这样:
>>> print b
<p>„De neergang kan een duikvlucht worden.”</p>
然后我想知道结果来自哪个函数。所以我尝试了以下方法:
>>> b.__repr__()
'<lxml.etree._XSLTResultTree object at 0x112c6a980>'
>>> b.__str__()
'\xe2\x80\x9eDe neergang kan een duikvlucht worden.\xe2\x80\x9d</p>'
>>> b.__unicode__()
'u'<p>\u201eDe neergang kan een duikvlucht worden.\u201d</p>'
如您所见,这些函数都没有显示print 语句显示的内容。我一直认为print实际上显示了__repr__()、__str__()或__unicode__()的结果,但显然不是这样。
那么print 实际调用的是什么?
【问题讨论】:
-
它是
__str__,但是当你只做b.__str__()时,你实际上是在做print b.__str__().__repr__(),所以它仍然打印不同。 -
试试
print b.__str__()
标签: python string printing repr