[Python-ideas] Let’s make escaping in f-literals impossible

Chris Angelico rosuav at gmail.com
Thu Aug 18 20:37:02 EDT 2016


On Fri, Aug 19, 2016 at 10:18 AM, Steven D'Aprano <steve at pearwood.info> wrote:
> On Fri, Aug 19, 2016 at 02:17:29AM +1000, Chris Angelico wrote:
>
>> Format codes are just text,
>
> I really think that is wrong. They're more like executable code.
>
> https://www.python.org/dev/peps/pep-0498/#expression-evaluation
>
> "Just text" implies it is data:
>
>     result = "function(arg)"
>
> like the string on the right hand side of the = is data. You wouldn't
> say that a function call was data (although it may *return* data):
>
>     result = function(arg)
>
> or that it was "just text", and you shouldn't say the same about:
>
>     result = f"{function(arg)}"
>
> either since they are functionally equivalent. Format codes are "just
> text" only in the sense that source code is "just text". Its technically
> correct and horribly misleading.
>

By "format code", I'm talking about the bit after the colon, which
isn't executable code, but is a directive that says how the result is
to be formatted. These have existed since str.format() was introduced,
and have always been text, not code.

ChrisA


More information about the Python-ideas mailing list