| ▲ | xg15 3 days ago | |||||||||||||||||||||||||
here's a valid f-string: >>> f'{'}'}' '}' Huh? I remember learning the rule that you can't nest quotes inside fstrings if they are the same kind (unlike in bash) - e.g
would be a syntax error, but
or
would be valid.The reason being the same like for the rstring weirdness: The lexer comes first and identifies the string literal, then for fstrings, the python parser is invoked again for each {...} expression to parse it. This is unlike other nested expressions, which are already split up by the lexer and then parsed in one go. Did that change at some point? | ||||||||||||||||||||||||||
| ▲ | xg15 3 days ago | parent [-] | |||||||||||||||||||||||||
Update: They really changed it! (in python 3.12) There was a PEP about it: https://stackoverflow.com/questions/78388333/nested-quotes-i... https://docs.python.org/3.12/whatsnew/3.12.html#pep-701-synt... | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||