Python 3.5, bytes, and %-interpolation (aka PEP 461)

Ethan Furman ethan at stoneleaf.us
Mon Feb 24 14:54:54 EST 2014


Greetings!

A PEP is under discussion to add %-interpolation back to the bytes type in Python 3.5.

Assuming the PEP is accepted, what *will* be added back is:

Numerics:

   b'%d' % 10  --> b'10'
   b'%02x' % 10  --> b'0a'

Single byte:

   b'%c' % 80  --> b'P'

and generic:

   b'%s' % some_binary_blob --> b'tHE*&92h4' (or whatever)

What is under debate is whether we should also add %a:

   b'%a' % some_obj  --> b'some_obj_repr'

What %a would do:

   get the repr of some_obj

   convert it to ascii using backslashreplace (to handle any code points over 127)

   encode to bytes using 'ascii'

Can anybody think of a use-case for this particular feature?

--
~Ethan~



More information about the Python-list mailing list