[Python-Dev] unicode and __str__
"Martin v. Löwis"
martin at v.loewis.de
Mon Aug 30 23:35:17 CEST 2004
Neil Schemenauer wrote:
> But unicode() will also return __str__, eg.
>
> >>> class A:
> ... def __str__(self):
> ... return u'\u1234'
> ...
> >>> unicode(A())
> u'\u1234'
>
> Why would I want to use __unicode__?
This class is incorrect: it does not support str().
> Shouldn't we be heading to a
> world where __str__ always returns unicode objects?
No. In some cases, str() needs to compromise, where unicode() doesn't.
> Now, say your class stores unicode character data. You could have
> __unicode__ return a unicode object and have __str__ encode it
> somehow and return a str. However, that seems like a horrible
> design to me.
Perhaps. What are you proposing to do about this? Ban, from the face
of the earth, what seems like a horrible design to you?
Regards,
Martin
More information about the Python-Dev
mailing list