confused about __str__ vs. __repr__
Neal Becker
ndbecker2 at gmail.com
Thu Dec 18 09:20:56 EST 2008
Tino Wildenhain wrote:
> 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!
>
> it is:
>
> > print x
> str
>
> but dict just uses repr() for all its childs to print.
>
> T.
That makes no sense to me. If I call 'print' on a container, why wouldn't it recursively print on the contained objects? Since print means call str, printing a container should recursively call str on the objects.
More information about the Python-list
mailing list