[Python-Dev] transitioning from % to {} formatting (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Sat Oct 3 07:19:55 CEST 2009


Steven Bethard wrote:

On Fri, Oct 2, 2009 at 12:43 PM, Martin Geisler <mg at lazybytes.net> wrote:

I hate calling methods on string literals, I think it looks very odd to have code like this:

"Displaying {0} of {1} revisions".format(x, y) Will we be able to write this as "Displaying {0} of {1} revisions" % (x, y) too? I doubt it. One of the major complaints about the %-style formatting was that the use of % produced (somewhat) unexpected errors because of how operator precedence works::

'{0}'.format(4 + 1) '5' '%s' % 4 + 1 Traceback (most recent call last): File "", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Steve

The other major problem with the use of the mod operator is the bugs encountered with "fmt % obj" when obj happened to be a tuple or a dict.

So no, the switch to a method rather than an operator was deliberate.

Cheers, Nick.

-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia



More information about the Python-Dev mailing list