Draft PEP: string interpolation with backquotes

Tim Peters tim.one at home.com
Mon Dec 10 01:07:07 EST 2001


[Tim]
>> Seems overspecified:  "U" and "R" are also legit prefixes, so
>> "I" should be too.  The order of prefixes shouldn't matter (just as it
>> doesn't matter now for mixing 'u'/'U' and 'r'/'R').

[Oren Tirosh]
> The order of prefixes does matter.  Try it.  ur"foo" is valid,
> but ru"foo" isn't.

Woo hoo!  So it is(n't).  I stand humiliated yet enlightened.  I'm a little
disturbed that you knew this, though <wink>.

> I don't know the original rationale for this decision but I tried
> to keep it.  Do you have any special arguments one way or the other?

When in Rome ...

> Naturally, the "i" prefix should be case insensitive, just like
> "r" and "u".

Cool.

> ...
> I meant str().  repr() isn't very useful when embedding strings
> because of the quotes.

Bingo.

> I should have been more specific.  Yes, this is inconsistent with
> the standard use of backquotes which is equivalent to repr(), not
> str().  I believe this is an acceptable compromise since it does the
> Right Thing for formatting.  I wonder how ABC's backquotes worked inside
> strings.

ABC didn't have the str-vs-repr distinction; backtick interpolation was
*the* ABC gimmick, and produced a string the same as ABC's WRITE stmt given
the same expression.  This was like Python's "print" stmt, more str()-like
than repr()-like.  Backtick expressions could nest.

That Python already uses `` for something else remains a hangup,

> ...
> A possible approach I have considered is to allow nested backticks
> inside interpolations as long as they are surrounded by at least one
> level of parens/braces etc.

Ack -- support it fully, or not at all.  The user's view of syntactic
complexity derives from the lumpiness of the grammar.





More information about the Python-list mailing list