Evaluation of variable as f-string

Johannes Bauer dfnsonfsduifb at gmx.de
Sat Jan 28 14:57:23 EST 2023


Am 28.01.23 um 00:41 schrieb Chris Angelico:
> On Sat, 28 Jan 2023 at 10:08, Rob Cliffe via Python-list
> <python-list at python.org> wrote:
>>
>> Whoa! Whoa! Whoa!
>> I appreciate the points you are making, Chris, but I am a bit taken
>> aback by such forceful language.
> 
> The exact same points have already been made, but not listened to.
> Sometimes, forceful language is required in order to get people to
> listen.

An arrogant bully's rationale. Personally, I'm fine with it. I've been 
to Usenet for a long time, in which this way of "educating" people was 
considered normal. But I do think it creates a deterring, toxic 
environment and reflects back to you as a person negatively.

>> Addressing your points specifically:
>>       1) I believe the quote character limitation could be overcome. It
>> would need a fair amount of work, for which I haven't (yet) the time or
>> inclination.
> 
> No problem. Here, solve it for this string:
> 
> eval_me = ' f"""{f\'\'\'{f"{f\'{1+2}\'}"}\'\'\'}""" '
> 
> F-strings can be nested, remember.

Exactly. This is precisely what I want to avoid. Essentially, proper 
quotation of such a string requires to write a fully fledged f-string 
parser, in which case the whole problem solves itself.

>>> Don't ask how to use X to do Y. Ask how to do Y.
>> Good advice.
> 
> Exactly. As I have shown, asking how to use f-strings to achieve this
> is simply not suitable, and there's no useful way to discuss other
> than to argue semantics. If we had a GOAL to discuss, we could find
> much better options.

I was not asking how to use f-strings. I was asking to evaluate a string 
*as if it were* an f-string. Those are two completely different things 
which you entirely ignored.

In other words, if there were a magic function:

evalfstring(s, x = x)

That would have been the ideal answer. There does not seem to be one, 
however. So I'm back to silly workarounds.

Cheers,
Johannes


More information about the Python-list mailing list