
On 24 Sep 2023, at 16:42, Stephen J. Turnbull <turnbull.stephen.fw@u.tsukuba.ac.jp> wrote:
Dom Grigonis writes:
But it's far from concise What could be more concise?
A notation where you don't have to repeat a possibly long expression. For example, numerical positions like regular expressions. Consider this possible notation:
f'There are {count} expression{pluralize(count)} denoted by {=0}.'
Otherwise it isn't great, but it's definitely concise. In the simplest case you could omit the position:
f'{=} is {count} at this point in the program.' Hmmm...
and violates DRY -- it doesn't solve the problem of the first draft typo.
And how is “postfix =“ different?
You *can't* use different identifiers for the name and value in "postfix =": the same text is used twice, once as a string and one as an identifier. I see what you mean, but this property is arguably intrinsic to what it is. And is part of f-strings vs explicit formatting property too: variable = 1 print(f'{variable=} and b={variable}') # VS msg = 'variable={v} and b={v}' print(msg.format(v=variable)) Especially, where msg can be pre-stored and reused. Then maybe not making it f-string only is a better idea. So that one can do: msg = '{a!i}={a} and b={a}' print(msg.format(a=variable))