T
Terry Reedy
Guido intends that the new str.format and associated facilities
eventually replace the old % formatting operator. But when? (Why is a
different question discussed elsewhere, but includes elimination of a
couple of problems and greatly increased flexibility and extendibility.)
A few month ago, Guido asked about barriers to switching and two primary
issues came up:
1. No automatic conversion. A couple of people said that would work on
this but I do not know the status.
2. Simple replacement made harder. For example, "Put the $s in the $s
until $s." had to be rewritten as "Put the {0} in the {1} until {2},".
This is harder to write because each replacement field requires not just
an extra character, but also two shift-unshift sequences instead of one.
Plus, one could make a mistake in numbering, or add and delete a field
and have to renumber. Ugh.
So I suggested that we let the interpreter autonumber positional fields,
so we could just write "Put the {} in the {} until {}.", which is about
as easy to type as the $s version. Eric Smith wrote and committed a
patch for 3.1 so we will be able to do that.
So I believe that people just starting with Python, with 2.6, 3.0 (which
should definitely be upgraded to 3.1 when possible), or some with 3.1
should start with the new .format.
Terry Jan Reedy
eventually replace the old % formatting operator. But when? (Why is a
different question discussed elsewhere, but includes elimination of a
couple of problems and greatly increased flexibility and extendibility.)
A few month ago, Guido asked about barriers to switching and two primary
issues came up:
1. No automatic conversion. A couple of people said that would work on
this but I do not know the status.
2. Simple replacement made harder. For example, "Put the $s in the $s
until $s." had to be rewritten as "Put the {0} in the {1} until {2},".
This is harder to write because each replacement field requires not just
an extra character, but also two shift-unshift sequences instead of one.
Plus, one could make a mistake in numbering, or add and delete a field
and have to renumber. Ugh.
So I suggested that we let the interpreter autonumber positional fields,
so we could just write "Put the {} in the {} until {}.", which is about
as easy to type as the $s version. Eric Smith wrote and committed a
patch for 3.1 so we will be able to do that.
So I believe that people just starting with Python, with 2.6, 3.0 (which
should definitely be upgraded to 3.1 when possible), or some with 3.1
should start with the new .format.
Terry Jan Reedy