[Python-Dev] Re: [I18n-sig] Unicode experience

M.-A. Lemburg mal@lemburg.com
Fri, 07 Jul 2000 14:56:37 +0200

Fredrik Lundh wrote:
> guido wrote:
> > I propose ustr(x) with the semantics given by Toby.
> +1 on concept.
> not sure about the name and the semantics.

Uhm, what's left then ;-) ?
> maybe a better name would be "unistr" (to match "unistr").
> or maybe that's backwards?
> how about "String" (!).
> (the perfect name is "string", but that appears to be reserved
> by someone else...)
> as for the semantics, note that __str__ is allowed to return a
> unicode string in the current code base ("str" converts it to 8-
> bit using the default encoding).  ustr/unistr/String should pass
> that one right through:
>     def ustr(s):
>         if type(s) in (type(""), type(u"")):
>             return s
>         s = s.__str__()
>         if type(s) in (type(""), type(u"")):
>             return s
>         raise "__str__ returned wrong type"
> > Class support (an __ustr__ method, with fallbacks on __str__
> > and __unicode__) would also be handy.
> -0 on this one (__str__ can already return either type, and if the
> goal is to get rid of both unichr and unistr in the future, we shouldn't
> add more hooks if we can avoid it.  it's easier to remove stuff if you
> don't add them in the first place ;-)

Agreed. I'm just adding coercion support for instances using
that technique: instance defining __str__ can return Unicode
objects which will then be used by the implementation whereever
coercion to Unicode takes place.

I'll add a similar hook to unicode().

Marc-Andre Lemburg
Business:                                      http://www.lemburg.com/
Python Pages:                           http://www.lemburg.com/python/