[Python-Dev] Divorcing str and unicode (no more implicit conversions).

M.-A. Lemburg mal at egenix.com
Mon Oct 3 11:43:13 CEST 2005


Michael Hudson wrote:
> Martin Blais <blais at furius.ca> writes:
> 
> 
>>What if we could completely disable the implicit conversions between
>>unicode and str?  In other words, if you would ALWAYS be forced to
>>call either .encode() or .decode() to convert between one and the
>>other... wouldn't that help a lot deal with that issue?
> 
> 
> I don't know.  I've made one or two apps safe against this and it's
> mostly just annoying.
>
>>How hard would that be to implement?
> 
> import sys
> reload(sys)
> sys.setdefaultencoding('undefined')

You shouldn't post tricks like these :-)

The correct way to change the default encoding is by
providing a sitecustomize.py module which then call the
sys.setdefaultencoding("undefined").

Note that the codec "undefined" was added for just this
reason.

>>Would it break a lot of code?  Would some people want that?  (I know
>>I would, at least for some of my code.)  It seems to me that this
>>would make the code more explicit and force the programmer to become
>>more aware of those conversions.  Any opinions welcome.
> 
> I'm not sure it's a sensible default.

Me neither, especially since this would make it impossible
to write polymorphic code - e.g. ', '.join(list) wouldn't
work anymore if list contains Unicode; dito for u', '.join(list)
with list containing a string.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Sep 30 2005)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::


More information about the Python-Dev mailing list