[Python-Dev] RFC: PEP 460: Add bytes % args and bytes.format(args) to Python 3.5 (original) (raw)

Eric V. Smith eric at trueblade.com
Sat Jan 11 00:14:45 CET 2014


On 1/10/2014 6:02 PM, Antoine Pitrou wrote:

On Fri, 10 Jan 2014 14:58:15 -0800 Ethan Furman <ethan at stoneleaf.us> wrote:

On 01/10/2014 02:42 PM, Antoine Pitrou wrote:

On Fri, 10 Jan 2014 17:33:57 -0500 "Eric V. Smith" <eric at trueblade.com> wrote:

On 1/10/2014 5:29 PM, Antoine Pitrou wrote:

On Fri, 10 Jan 2014 12:56:19 -0500 "Eric V. Smith" <eric at trueblade.com> wrote:

I agree. I don't see any reason to exclude int and float. See Guido's messages http://bugs.python.org/issue3982#msg180423 and http://bugs.python.org/issue3982#msg180430 for some justification and discussion. If you are representing int and float, you're really formatting a text message, not bytes. Basically if you allow the formatting of int and float instances, there's no reason not to allow the formatting of arbitrary objects through str. It doesn't make sense to special-case those two types and nothing else. It might not for .format(), but I'm not convinced. But for %-formatting, str is already special-cased for these types. That's not what I'm saying. str.mod is able to represent all kinds of types through %s and calling str. It doesn't make sense for bytes.mod to only support int and float. Why only them?

Ah, I see. This is about the types that %s supports, not about support for %d and %f.

Because embedding the ASCII equivalent of ints and floats in byte streams is a common operation? Again, if you're representing "ASCII", you're representing text and should use a str object.

Yes, but is there existing 2.x code that uses %s for int and float (perhaps unwittingly), and do we want to "help" that code out? Or do we want to make porters first change to using %d or %f instead of %s? I'll grant you that we might be doing more harm than help by special-casing these types. I'm just asking.

I think what you're getting at is that in addition to not calling format, we don't want to call str, either, for the same reason. Correct me if I'm off base, please. I'm not trying to put words in anyone's mouth.

In any event, I think supporting %d and %f (and %i, %u, %x, %g, etc.) inside format strings would be useful.

Eric.



More information about the Python-Dev mailing list