repr on a string

Gerrit Holl gerrit at
Sun Jun 1 23:27:32 CEST 2003

David Shochat schreef op zondag  1 juni om 22:21:17 +0000:
> The Library Reference says this about built-in repr():
>  Return a string containing a printable representation of an object.
> While studying Programming Python, 2nd Ed. Example 2-18, p. 84, I was
> wondering what the point was of applying repr to a component (dir) of 
> sys.path. Isn't it after all, already a printable string? Ok, so 
> what does it mean to take repr of a printable string, and why does 
> the author want to here? Are we worried that the path contains an 
> unprintable directory name or something?
> I tried this:
> >>> str = 'dog'
> >>> str
> 'dog'
> >>> repr(str)
> "'dog'"
> We now seem to have a string with quote characters as its first 
> and last components. I would have thought that the operation of 
> making a printable representation of something that is already 
> printable would be the identify function. Could someone
> explain precisely what is going on here?

'repr' creates a reprentation that can be eval()ed, if possible. That's
why the quotes are necessary. When you type the name of an object in
the active interpreter, it also does a repr. When you type "print object"
it doesn't:

  8 >>> s = 'dog'
  9 >>> s
 10 >>> print s
 11 >>> repr(s)
 12 >>> print repr(s)
 13 >>> print repr(repr(repr(repr(s))))
 14 >>> eval(repr(s))
 15 >>> print eval(repr(s))
 18 >>> print repr(s)[0]
 20 >>> repr({})
 21 >>> repr(0)
 22 >>> repr(repr)
'<built-in function repr>'

Hope this helps!


 If a father give a present to his daughter -- either marriageable
or a prostitute (unmarriageable) -- and then die, then she is to receive a
portion as a child from the paternal estate, and enjoy its usufruct so
long as she lives. Her estate belongs to her brothers. 
        -- Hammurabi, Code of Law
Asperger Syndroom - een persoonlijke benadering:
Het zijn tijden om je zelf met politiek te bemoeien:

More information about the Python-list mailing list