[Python-Dev] unicode and __str__

"Martin v. Löwis" martin at v.loewis.de
Mon Aug 30 22:57:36 CEST 2004


Neil Schemenauer wrote:
> Also, I'm a little unclear on the purpose of the __unicode__ method.
> If you can return unicode from __str__ then why would I want to
> provide a __unicode__ method?  Perhaps it is meant for objects that
> can either return a unicode or a string representation depending on
> what the caller prefers.  I have a hard time imagining a use for
> that.

It's what unicode() returns:

 >>> class A:
...   def __str__(self):return "1"
...   def __unicode__(self): return u"2"
...
 >>> a=A()
 >>> str(a)
'1'
 >>> unicode(a)
u'2'

str() is guaranteed to return a byte string; unicode() is guaranteed
to return a unicode string.

Regards,
Martin


More information about the Python-Dev mailing list

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant