[Python-3000] PEP 3137: Immutable Bytes and Mutable Buffer
Alexandre Vassalotti
alexandre at peadrop.com
Thu Sep 27 17:13:38 CEST 2007
On 9/26/07, Alexandre Vassalotti <alexandre at peadrop.com> wrote:
> I think indexing a bytes/buffer object should return an int.
> I find this behavior more natural, to me, than using an
> ord()-like function to extract values.
I didn't known about the length-1 comparison issue when I wrote this.
Personally, I wouldn't mind writing either this:
for b in bytes:
if b == b'a'[0]:
pass
or this:
for b in bytes:
if b == b'a':
pass
> In fact, I remarked that the use of ord() is good indicator
> that bytes should be used instead of str (look by yourself:
> grep -R --include='*.py' 'ord(' python25/Lib).
I don't think my argument is still valid. Compared the use of ord() in
Python 2.x vs. Python 3.x with:
% egrep -R --include='*.py' '\<ord\(' python/Lib | wc -l
238
% egrep -R --include='*.py' '\<ord\(' py3k/Lib | wc -l
221
I thought ord() was mostly used for extracting ints from a string
object variable. I was wrong about that. ord() is most often used for
getting an int value from a length-1 string constant.
So, I am neutral about the whole indexing issue. Either indexing
behavior has advantages and disadvantages, so it will be difficult to
choose which is better.
-- Alexandre
More information about the Python-3000
mailing list