
On 6/24/2021 11:28 PM, Guido van Rossum wrote:
On Thu, Jun 24, 2021 at 10:34 AM micro codery <ucodery@gmail.com <mailto:ucodery@gmail.com>> wrote:
As pointed out already, f-strings and format are subtly different (not counting that one can eval and the other cannot). Besides quoting, the f-sting mini language has diverged from format's >>> spam="Spam" >>> f"{spam=}" "spam='Spam'" >>> "{spam=}".format(spam=spam) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'spam='
Eric, what would you think of adding this feature to format()? It seems doable (at least for keyword args -- for positional args I don't think it makes sense).
The only problem is that it already has a meaning, as unlikely as it is that someone would use it:
d = {'x = ': 42} "{x = }".format(**d) '42'
Plus there's the issue of whitespace being treated differently with f-strings and str.format().
Honestly, the rest of the discussion belongs on python-ideas.
I totally agree. Eric