[Python-Dev] Adding bytes.frombuffer() constructor to PEP 467 (was: [Python-ideas] Adding bytes.frombuffer() constructor (original) (raw)
Terry Reedy tjreedy at udel.edu
Wed Oct 12 15:44:19 EDT 2016
- Previous message (by thread): [Python-Dev] Adding bytes.frombuffer() constructor to PEP 467 (was: [Python-ideas] Adding bytes.frombuffer() constructor
- Next message (by thread): [Python-Dev] Adding bytes.frombuffer() constructor to PEP 467 (was: [Python-ideas] Adding bytes.frombuffer() constructor
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 10/12/2016 5:42 AM, INADA Naoki wrote:
On Wed, Oct 12, 2016 at 2:32 PM, Serhiy Storchaka <storchaka at gmail.com> wrote:
On 12.10.16 07:08, INADA Naoki wrote:
Sample code: def readline(buf: bytearray) -> bytes: try: n = buf.index(b'\r\n') except ValueError: return b'' line = bytes(buf)[:n] # bytearray -> bytes -> bytes Wouldn't be more correct to write this as bytes(buf[:n])? Yes, you're right! I shouldn't copy whole data only for cast from bytearray to byte.
Also, why do the conversion from bytearray to bytes? It is definitely not always needed.
ba = bytearray(b'abc') b = b'def' ba + b bytearray(b'abcdef') b'%s %s' % (ba, b) b'abc def' b + ba b'defabc' ba.extend(b) ba bytearray(b'abcdef')
Even if it is sometimes needed, why do it always? The essence of read_line is to slice out a line, delete it from the buffer, and return the line. Let the caller explicitly convert when needed.
-- Terry Jan Reedy
- Previous message (by thread): [Python-Dev] Adding bytes.frombuffer() constructor to PEP 467 (was: [Python-ideas] Adding bytes.frombuffer() constructor
- Next message (by thread): [Python-Dev] Adding bytes.frombuffer() constructor to PEP 467 (was: [Python-ideas] Adding bytes.frombuffer() constructor
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]