On Tue, Apr 8, 2008 at 4:49 PM, Facundo Batista
<[EMAIL PROTECTED]> wrote:
> 2008/4/8, Greg Ewing <[EMAIL PROTECTED]>:
>  > That's true, but it's sufficiently unlikely that a string
>  >  such as "<type 'foo'>" could have accidentally arisen some
>  >  other way that I don't lose any sleep over it. If weird
>  >  things seem to be happening in some particular case, I'll
>  >  put a repr() in to find out exactly what's going on. Most
>  >  of the time it's not needed, though.
>  >
>  >  There's another reason it bothers me. If a string like
>  >  "<type 'foo'>" turns up in otherwise normal output, it's
>  >  a fairly clear indication that I've somehow ended up
>  >  printing something that was never meant to be printed.
>  >  Whereas if it just comes out as "foo", it could easily
>  >  go unnoticed.
>
>  I'm with Greg here, but I'll put it in another way: I don't want
>  repr() to be nice, I want it to be as explicit as possible. I want to
>  be able to trust repr(), and never doubt of what it's showing to me.

Seems to be mass confusion all around. My proposal is:

repr(int) == <class 'int'>
str(int) == 'int'

For user-defined classes, a module name will always be present, e.g.
for class C defined in __main__:

repr(C) == <class '__main__.C'>
str(c) == '__main__.C'

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to