[Python-Dev] Fw: Behavior of buffer()

M.-A. Lemburg mal@lemburg.com
Fri, 12 Jul 2002 22:39:23 +0200


Guido van Rossum wrote:
>>Guido van Rossum wrote:
>>
>>>I'm a little surprised.  Raymond Hettinger checked in a change that
>>>makes all slices of buffer objects return strings.  His comments on SF
>>>bug 546434 say that only one person replied and that they agreed
>>>returning strings was the better solution.  But that's not how I read
>>>the only response to his query that I see in python-dev, from Scott
>>>Gilbert:
>>
>>Interesting. I must have skipped that message.
> 
> 
> You blink, and you find that the world has changed.

Indeed :-)

>>IMHO, all slices of buffer object should return buffer objects,
>>but since all Python releases return strings, I guess this is too
>>late to change.
> 
> 
> That was my preference too, but Raymond disagreed and somehow tried to
> find support for his position :-).
> 
> Since buffer objects (of course :-) support the C-level buffer
> protocol, they can still be used in most places where strings are
> needed.  But it would be incompatible.  But so is Raymond's solution
> (because it changes buffer()[:] to also return a string).
> 
>>Note that the only case where a buffer object
>>is returned in Python 2.x (x < 3) is if you write
>>buffer()[:], i.e. you want a copy of the buffer object.
> 
> What does a copy of a buffer object buy you?

Nothing... since you only get a new reference, not an
independent copy.

> It's not too late to revert Raymond's changes.

Why not try the buffer slice returns buffer logic for
a few alphas, then betas, and then if noone complains
the final release ?

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
_______________________________________________________________________
eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,...
Python Consulting:                               http://www.egenix.com/
Python Software:                    http://www.egenix.com/files/python/