[Python-Dev] Utopian String Interpolation
Paul Prescod
paul@prescod.net
Tue, 15 Jan 2002 15:12:21 -0800
Paul Svensson wrote:
>
>....
>
> +1 on no prefix, -0 on \$.
> To my eyes, \(whatever) looks much cleaner, tho I'm not sure how
> that would work with the evaluate_expressions flag in (5).
An offline correspond suggested that and also suggested perhaps \`. \`
is nicely reminicent of `abc` and it does basically the same thing, only
in strings, so I kind of like it.
>>> `5+3`
'8'
>>> "\`5 + 3` is enough"
8 is enough
The downside is that larger characters like $ and % are much more clear
to my eyes. Plus there is the whole apos-backtick confusion.
The problem with \( is that that is likely to already be a popular
string in regular expressions.
>...
> > 4. Between the $-sign and the opening paren, it should be possible to
> >put a C-style formatting specification.
> >
> >"pi = \$5.3f(math.pi)".
> >
> >There is no reason to force people to switch to a totally different
> >language feature to get that functionality. I never use it myself but
> >presume that scientists do!
>
> Eek -- feeping creaturism. -2.
The feature is already there and sometimes used. We either keep two
different ways to spell interpolation or we incorporate it.
> The only reason to add this here is to be able to remove the % operator
> on strings, and I'm not convinced that is the right way to go.
> Anyways, this just begs to be spelled something like \%5.3f(math.pi).
> Printf-like format specifications without a %-character seems just weird.
The offline correspondant also had this idea and I'm coming around to
it.
>...
> -0. Here I think is a good place to draw the line before the returns
> diminish too far. I see the major part of the usefulness of string
> interpolation coming from compile time usage, and that also nicely matches
> how all other \-sequences are handled.
And do what to do templating at runtime? Modulo? string.replace? Or just
don't provide that feature? Also, how to handle interpolation in raw
strings?
Paul Prescod