On Wed, Oct 3, 2018 at 2:11 PM Anders Hovmöller
This would be used in debugging print statements, that currently end up looking like:
print(f'value={value!r}')
and would now be:
print(f'{value!d}')
It seems to me that a short form for keyword arguments would improve this situation too. So instead of your suggestion one could do:
print(dict(=value))
And of course this feature wouldn’t be a minor feature on f-strings but a feature that is generally useful and composable so the above could be improved:
def debug(**kwargs): for k, v in kwargs.items(): print(f’{k}={v}’)
debug(=value, =another)
What if it's not a simple name, though? The OP gave this (somewhat simplistic, but indicative) example: print(f'next: {value+1!d}') AIUI, keyword arguments are all supposed to be legal names/atoms, so you aren't supposed to do something like this: debug(**{"value+1":value+1}) even though it does work in current versions of CPython. So even if your "=value" syntax did permit it, I wouldn't want to guarantee that in the language. (Side point: Please watch your mailer. The debug() function above has smart quotes in it, which means it can't be copied and pasted into the interpreter. Not a big problem with trivially-simple functions, but if it's something larger, it's annoying to have to track down "SyntaxError: invalid character in identifier" to figure out why it's not doing what you think it is.) ChrisA