[Python-ideas] Briefer string format

Ron Adam ron3200 at gmail.com
Thu Jul 23 20:32:28 CEST 2015



On 07/23/2015 02:15 PM, Eric V. Smith wrote:
> On 7/23/2015 1:57 PM, Chris Angelico wrote:
>> >On Fri, Jul 24, 2015 at 3:52 AM, Ron Adam<ron3200 at gmail.com>  wrote:
>>> >>The part that bothers me is it seems like the "f" should be a unary operator
>>> >>rather than a string prefix.
>>> >>
>>> >>As a prefix:
>>> >>
>>> >>       s = f'{spam}{{eggs}}'        # spam
>>> >>       s2 = s.format(eggs=eggs)     # eggs
>>> >>
>>> >>
>>> >>As an unary operator:
>>> >>
>>> >>       s  = ? '{spam}{{eggs}}'    # spam
>>> >>       s2 = ? s                   # eggs
>>> >>
>>> >>(? == some to be determined symbol)
>>> >>
>>> >>They are just normal strings in the second case.
>> >
>> >Except that they can't be normal strings, because the compiler has to
>> >parse them. They're expressions. You can't take input from a user and
>> >f-string it (short of using exec/eval, of course); it has to be there
>> >in the source code.
> Right. This is the "unevaluated f-string" of which I spoke in
> https://mail.python.org/pipermail/python-ideas/2015-July/034728.html
>
> It would be a huge code injection opportunity, and I agree it's best we
> don't implement it.

I see, it would be like using eval on user strings, except it will be less 
noticeable.

Cheers,
    Ron



More information about the Python-ideas mailing list