[Python-Dev] Fwd: PEP 467: Minor API improvements for bytes & bytearray (original) (raw)

Barry Warsaw barry at python.org
Sun Aug 17 23:41:10 CEST 2014


I think the biggest API "problem" is that default iteration returns integers instead of bytes. That's a real pain.

I'm not sure .iterbytes() is the best name for spelling iteration over bytes instead of integers though. Given that we can't change iter(), I personally would perhaps prefer a simple .bytes property over which if you iterated you would receive bytes, e.g.

data = bytes([1, 2, 3]) for i in data: ... print(i) ... 1 2 3 for b in data.bytes: ... print(b) ... b'\x01' b'\x02' b'\x03'

There are no backward compatibility issues with this of course.

As for the single-int-ctor forms, they're inconvenient and arguably "wrong", but I think we can live with it. OTOH, I don't see any harm by adding the .zeros() alternative constructor. I'd probably want to spell the .byte() alternative constructor .from_int() but I also don't think the status quo (or .byte()) is that much of a usability problem.

The API churn problem comes about when you start wanting to deprecate the single-int-ctor form. If that part gets adopted, it should have a really long deprecation cycle, IMO.

Cheers, -Barry



More information about the Python-Dev mailing list