[Eric V. Smith eric@trueblade.com]
Here’s the idea: for f-strings, we add a !d conversion operator, which is superficially similar to !s, !r, and !a. The meaning of !d is: produce the text of the expression (not its value!), followed by an equal sign, followed by the repr of the value of the expression.
...
The result is a string, so if you really wanted to, you could use a string formatting spec. So:
print(f'*{value!d:^20}*'
would produce:
value=10 *
Although I don’t think that would be very useful in general.
Me neither ;-) But what if
{EXPR!d:FMT}
acted like the current
EXPR={EXPR:FMT}
? I'd find _that_ useful often. For example, when displaying floats, where the repe is almost never what I want to see.
f"math.pi={math.pi:.2f}"
'math.pi=3.14'
I have plenty of code already embedding stuff of the form
EXPR {EXPR:FMT}
and don't really care whether there's a space or an "=" between the chunks. "!d" could act like a macro-expansion operator automating a mechanical transformation inside the f-string. Then I could read "!d" as "duplicate" instead of as "debug" ;-)