In my view, the various mentions of nested f-strings and unreadable code as a possibility are not particularly compelling arguments. It is always possible to write unreadable code.
O0OO0 = 1
OO0O0 = 0
OOO00 = O0OO0 + OO0O0 - ...
And I haven’t even started defining functions yet!
The backslash restriction shows up pretty naturally when working with \n
. The other day, I ran into the following real-world example:
f"{'\n'.join(mylist)}\n"
It is not intuitive that this raises an error at runtime, which makes it a (possibly unnecessary) point of friction for developers.