Ich habe ein Objekt, das ich an das Terminal drucken bekam, und es sieht wie folgt aus:Welche Funktion verwendet Python?
>>> print b
<p>„De neergang kan een duikvlucht worden.”</p>
So fragte ich mich dann aus, welche Funktion das ist das Ergebnis. Also habe ich versucht, die folgenden:
>>> 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>'
Wie Sie sehen können, keine dieser Funktionen zeigt, was die print
Anweisung zeigt. Ich dachte immer, dass print
tatsächlich das Ergebnis entweder __repr__()
, __str__()
oder __unicode__()
zeigt, aber das ist eindeutig nicht der Fall.
Also was nennt print
eigentlich?
Es ist '__str__', aber wenn Sie nur' b .__ str __() 'machen, machen Sie' print b .__ str __() .__ repr __() ', so dass es immer noch anders gedruckt wird. – zondo
Versuchen Sie 'print b .__ str __()' – khelwood