That would mean the formattee would have to dig thru its surrounding namespace. This solution is more elegant, the string is transformed into the equivalent format call at compile time, making the implementation tiny.
Also, this alternative solution would not allow arbitrary expressions, which was a design goal.
Adding a new syntax that doesn't exist in any language.
vs.
Using sensible default parameters.
-----------------
An argument for why my suggestion would be bad: https://www.python.org/dev/peps/pep-0498/#no-use-of-globals-...
Not true, look into the new interpolation features in C#, Scala, JS, Swift, nim, etc.
Please, even JavaScript (ES6) got itself something similar; implicit string interpolation is not that rare.