confused about __str__ vs. __repr__

Diez B. Roggisch deets at nospam.web.de
Thu Dec 18 09:20:48 EST 2008


Neal Becker wrote:

> Reading some FAQ, I see that __str__ is "meant for human eyes".
> 
> But it seems that:
> class X(object):
>     def __str__(self):
>         return "str"
>     def __repr__(self):
>         return "repr"
> 
> x = X()
> d = {0 : x}
> print d
> {0: repr}
> 
> So if __str__ is "meant for human eyes", then why isn't print using it!

Because the __str__ of dict uses __repr__. Do a 

print x

to see that print itself does use __str__.

BTW, could you configure your newsreader to not put the GMANE-group as
follow-up? NNTP doesn't work for that.

Diez



More information about the Python-list mailing list