[Python-3000] Immutable bytes -- looking for volunteer
Talin
talin at acm.org
Tue Sep 18 04:42:04 CEST 2007
Guido van Rossum wrote:
> This may have passed in a thread where no-one was listening, so I'm
> repeating it here.
>
> I'm considering the following option: bytes would always be immutable,
> and for the few places (mostly in io.py) where a mutable bytes buffer
> would be handy, we use the array module. Then it would also make sense
> to make b[0] return a bytes array of length 1 instead of a small int
> -- bytes would be more similar to str in 2.x, albeit completely
> incompatible with str in terms of mixed operations.
>
> It would help if someone explored creating a patch to implement this,
> just to see the minimum amount of code that would need to change
> compared to 3.0a1. (The challenge includes making all the tests pass
> again.)
I don't know if I mentioned this before, since (a) I didn't want to be a
distraction while you were busy trying to make mutable bytes work
everywhere, and (b) I didn't want to sound completely insane. However -
here is my vision of how things would look in an ideal world:
Data Type AbstractSequence Immutable Mutable
========= ================ ========= =======
byte ByteSequence bytes buffer
character CharSequence str strbuf
'buffer' could be an array.array, although if it's used frequently
enough an optimized special-case 'buffer' class might be better. And it
can have methods that array doesn't have.
-- Talin
More information about the Python-3000
mailing list