
On Thu, Jul 23, 2015 at 1:31 PM, Steven D'Aprano <steve@pearwood.info> wrote:
I would go further and allow all the f prefixes apart from the first to be optional. To put it another way, the first f prefix "infects" all the other string fragments:
msg = (f'a long message here blah blah {x}' ' and {y} and {z} and more {stuff} and {things}' ' and perhaps even more {poppycock}' )
should be exactly the same as the first version.
Editors/IDEs would have to be taught about this (and particularly, taught to show f"..." very differently from "..."), because otherwise a missed comma could be very surprising: lines = [ "simple string", "string {with} {braces}", f"formatted string {using} {interpolation}" # oops, missed a comma "another string {with} {braces}" ] Could be a pain to try to debug that one, partly because stuff is happening at compile time, so you can't even pretty-print lines immediately after assignment to notice that there are only three elements rather than four. That solved, though, I think you're probably right about the f prefix infecting the remaining fragments. It'd be more consistent to have it *not* infect, the same way that an r or u/b prefix doesn't infect subsequent snippets; but if anyone's bothered by it, they can always stick in a few plus signs. ChrisA