[Python-Dev] PEP 461 - Adding % and {} formatting to bytes

Antoine Pitrou solipsis at pitrou.net
Wed Jan 15 17:04:15 CET 2014


On Wed, 15 Jan 2014 15:47:43 +0000 (UTC)
Neil Schemenauer <nas at arctrix.com> wrote:
> 
> Objects that implement __str__ can also implement __bytes__ if they
> can guarantee that ASCII characters are always returned, no matter
> what the *value*

I think that's a slippery slope. __bytes__ should mean that the object
has a well-known bytes equivalent or encoding, not that its __str__
happens to be pure ASCII.

(for example, it would be fine for a HTTP message class to define a
__bytes__ method)

Also, consider that if e.g. float had a __bytes__ method, then
bytes(2.0) would start returning b'2.0', while bytes(2) would still
need to return b'\x00\x00'.

Regards

Antoine.




More information about the Python-Dev mailing list