[Python-Dev] [Fwd: In Python 2.6, bytes is str]

Christian Heimes lists at cheimes.de
Wed Oct 8 01:25:25 CEST 2008


Guido van Rossum wrote:
> It was well understood that the bytes "type" in 2.6 and the bytes type
> in 3.0 would behave quite different. Attempts to come up with a
> separate bytes type that behaved more like its 3.0 counterpart were
> doomed, because there just are too many places where the usage was
> ambiguous. We should probably have written a PEP about this just to
> prevent the discussion from being repeated all over again in this
> thread.
> 
> The only two anticipated *reasonable* uses in 2.6 were the bytes
> literal (b'abc') and tests for isinstance(x, bytes), which are flags
> for 2to3 to keep these usages as bytes, not str.

Full ack!

I replies this to the op on the general Python list:
---
I guess you got the intention of the bytes alias wrong. It's partly my 
fault because I didn't document the bytes alias. We are well aware that 
the bytes alias in 2.6 isn't fully compatible with the bytes type in 
3.0. The bytes alias isn't MEANT to be compatible, too.  :)

At first I wanted to backport the bytes type from 3.0 to 2.6. But it was 
too many work and the implications of yet another types were too 
complex. So I just added the alias in order to help people with writing 
forward compatible code like e.g. isinstance(egg, bytes).

Summa summarum the bytes alias was added for documentary purpose and to 
aid the 2to3 transition of code where 'str' is ambiguous.
--

> I have no intention of rolling this back. It isn't compatible with
> 3.0, but then, 2.6 and 3.0 aren't in general meant to be compatible --
> 2.6 is a stepping stone, but that's not the same thing. It is
> backwards compatible with prior versions because it is new in 2.6, so
> it shouldn't break old code. I have only limited sympathy for people
> who don't read documentation in this case.

Maybe the documentation isn't clear enough what purpose the bytes alias 
serves? I spent 5 minutes with the docs but I wasn't able to find a good 
explanation of the bytes alias

Christian



More information about the Python-Dev mailing list