[Python-Dev] PEP 498 (interpolated f-string) tweak (original) (raw)

Eric V. Smith eric at trueblade.com
Sun Sep 20 15:51:06 CEST 2015


On 9/20/2015 8:37 AM, Nick Coghlan wrote:

On 19 September 2015 at 21:03, Eric V. Smith <eric at trueblade.com> wrote:

Instead of calling format, I've changed the code generator to call format(expr1, spec1). As an optimization, I might add special opcodes to deal with this and string concatenation, but that's for another day (if ever). Does this mean overriding format at the module level or in builtins will affect the way f-strings are evaluated at runtime? (I don't have a strong preference one way or the other, but I think the PEP should be explicit as to the expected behaviour rather than leaving it as implementation defined).

Yes, in the current implementation, if you mess with format(), str(), repr(), or ascii() you can break f-strings. The latter 3 are used to implement !s, !r, and !a.

I have a plan to change this, by adding one or more opcodes to implement the formatting and string joining. I'll defer a decision on updating the PEP until I can establish the feasibility (and desirability) of that approach.

Eric.



More information about the Python-Dev mailing list