[Python-Dev] PEP 467: Minor API improvements to bytes, bytearray, and memoryview (original) (raw)

Barry Warsaw barry at python.org
Thu Jun 9 22:21:57 EDT 2016


On Jun 07, 2016, at 01:28 PM, Ethan Furman wrote:

Deprecation of current "zero-initialised sequence" behaviour ------------------------------------------------------------

Currently, the bytes and bytearray constructors accept an integer argument and interpret it as meaning to create a zero-initialised sequence of the given size:: >>> bytes(3) b'\x00\x00\x00' >>> bytearray(3) bytearray(b'\x00\x00\x00') This PEP proposes to deprecate that behaviour in Python 3.6, and remove it entirely in Python 3.7. No other changes are proposed to the existing constructors.

Does it need to be actually removed? That does break existing code for not a lot of benefit. Yes, the default constructor is a little wonky, but with the addition of the new constructors, and the fact that you're not proposing to eventually change the default constructor, removal seems unnecessary. Besides, once it's removed, what would bytes(3) actually do? The PEP doesn't say.

Also, since you're proposing to add bytes.byte(3) have you considered also adding an optional count argument? E.g. bytes.byte(3, count=7) would yield b'\x03\x03\x03\x03\x03\x03\x03'. That seems like it could be useful.

Cheers, -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <http://mail.python.org/pipermail/python-dev/attachments/20160609/9be84756/attachment.sig>



More information about the Python-Dev mailing list