(no title)
thatcherthorn | 2 years ago
>>> f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
'2'
Is anyone aware of the change to the interpreter that allows for this?
thatcherthorn | 2 years ago
>>> f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
'2'
Is anyone aware of the change to the interpreter that allows for this?
striking|2 years ago
> When f-strings were originally introduced in PEP 498, the specification was provided without providing a formal grammar for f-strings. Additionally, the specification contains several restrictions that are imposed so the parsing of f-strings could be implemented into CPython without modifying the existing lexer. [...]
> The other issue that f-strings have is that the current implementation in CPython relies on tokenising f-strings as STRING tokens and a post processing of these tokens. This has the following problems: [...]
At https://peps.python.org/pep-0701/#rationale
> By building on top of the new Python PEG Parser (PEP 617), this PEP proposes to redefine “f-strings”, especially emphasizing the clear separation of the string component and the expression (or replacement, {...}) component.
DecoPerson|2 years ago
vscode-plz-stop|2 years ago
Heck, it even works in Vimscript
jhvkjhk|2 years ago
mathisfun123|2 years ago
JohnBooty|2 years ago
NegativeLatency|2 years ago
> puts “h#{”#{i}”}”
You “just” have to make your parser understand how to have all expressions or whatever inside braces. No idea how the python parser works but think about how you can nest json arbitrarily.
mirekrusin|2 years ago
ShamelessC|2 years ago
Why answer your question when I could just brag about how my personal favorite language has supported this for awhile?
/s
seanw444|2 years ago
mathisfun123|2 years ago