[Python-Dev] PEP-498: Literal String Formatting

Stefan Behnel stefan_ml at behnel.de
Sun Aug 9 10:06:47 CEST 2015


Eric V. Smith schrieb am 08.08.2015 um 03:39:
> Following a long discussion on python-ideas, I've posted my draft of
> PEP-498. It describes the "f-string" approach that was the subject of
> the "Briefer string format" thread. I'm open to a better title than
> "Literal String Formatting".
> 
> I need to add some text to the discussion section, but I think it's in
> reasonable shape. I have a fully working implementation that I'll get
> around to posting somewhere this weekend.
> 
> >>> def how_awesome(): return 'very'
> ...
> >>> f'f-strings are {how_awesome()} awesome!'
> 'f-strings are very awesome!'
> 
> I'm open to any suggestions to improve the PEP. Thanks for your feedback.

[copying my comment from python-ideas here]

How common is this use case, really? Almost all of the string formatting
that I've used lately is either for logging (no help from this proposal
here) or requires some kind of translation/i18n *before* the formatting,
which is not helped by this proposal either. Meaning, in almost all cases,
the formatting will use some more or less simple variant of this pattern:

    result = process("string with {a} and {b}").format(a=1, b=2)

which commonly collapses into

    result = translate("string with {a} and {b}", a=1, b=2)

by wrapping the concrete use cases in appropriate helper functions.

I've seen Nick Coghlan's proposal for an implementation backed by a global
function, which would at least catch some of these use cases. But it
otherwise seems to me that this is a huge sledge hammer solution for a
niche problem.

Stefan




More information about the Python-Dev mailing list