[Python-Dev] What to do for bytes in 2.6?
Guido van Rossum
guido at python.org
Sat Jan 19 20:32:46 CET 2008
On Jan 19, 2008 10:53 AM, Neil Schemenauer <nas at arctrix.com> wrote:
> Guido van Rossum <guido at python.org> wrote:
> > bytes is an alias for str (not even a subclass)
> > b"" is an alias for ""
>
> One advantage of a subclass is that there could be a flag that warns
> about combining bytes and unicode data. For example, b"x" + u"y"
> would produce a warning. As someone who writes internationalized
> software, I would happly use both the byte designating syntax and
> the warning flag, even if I wasn't planning to move to Python 3.
Yeah, that's what everybody thinks at first -- but the problem is that
most of the time (in 2.6 anyway) the "bytes" object is something read
from a socket, for example, not something created from a b"" literal.
There is no way to know whether that return value means text or data
(plenty of apps legitimately read text straight off a socket in 2.x),
so the socket object can't return a bytes instance, and hence the
warning won't trigger.
Really, the pure aliasing solution is just about optimal in terms of
bang per buck. :-)
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list