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