[Tutor] Why difference between printing string & typing its object reference at the prompt?

Brian van den Broek brian.van.den.broek at gmail.com
Wed Oct 3 07:00:30 CEST 2012


On 2 Oct 2012 23:17, "boB Stepp" <robertvstepp at gmail.com> wrote:

<snip>

> I am puzzled by the results of the following:
>
> >>> x = "Test"
> >>> x
> 'Test'
> >>> print(x)
> Test
>
> I understand that 'Test' is the stored value in memory where the
> single quotes designate the value as being a string data type. So it
> makes sense to me that just typing the object reference for the string
> results in including the single quotes. But why does the print() strip
> the quotes off? Is just as simple as

Hi boB,

Under the covers, in python 2.x, print x causes the human readable string
representation of x to be output by calling x.__str__. In an interactive
prompt, typing x displays the python representation of x by calling
x.__repr__.  These can be the same or quite similar or quite different.
When possible, __repr__ special methods ought to be defined so x equals
eval(x.__repr__()).

I believe, but don't warrant that in this regard python 3.x behave like 2.x
(modulo the difference in the print syntax).

Best,

Brian vdB
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20121003/3367d52d/attachment-0001.html>


More information about the Tutor mailing list