On Wed, Oct 21, 2020 at 1:13 AM Rob Cliffe <rob.cli...@btinternet.com> wrote:
>
> On 20/10/2020 13:05, Chris Angelico wrote:
> > On Tue, Oct 20, 2020 at 10:37 PM Rob Cliffe via Python-ideas
> > <python-ideas@python.org> wrote:
> >> In short, "assigning" to f-strings is not and cannot be a simple reversal  
> >> of having them in expressions.  Rather, it is opening a big can of worms.
> >>
> > It's not a reversal of them being in expressions any more than
> > assigning to a list display is a reversal of constructing a list. It's
> > a parallel operation, a counterpart.
> >
> > It would be Python's way of offering an sscanf-like operation, which
> > is something that I've frequently wished for. Regular expressions
> > aren't ideal for all situations, and there are plenty of times when a
> > simple set of parsing rules could be very nicely encoded into a
> > compact form like this. C's sscanf and sprintf aren't perfect
> > counterparts, but they're incredibly valuable. Python has percent
> > formatting for sprintf, but no form of sscanf.
> >
> Er, well, why not just add a sscanf to Python?

A couple of reasons, but the main one is that you can't have "output
variables" (in C, sscanf takes pointers, so you pass it the address of
your variables), which means that all you'd get is a fancy string
split and then you put all the assignment on the left. That leads to
an all-or-nothing result for the simple form, and no easy way to do
anything else. Consider:

a, b, c = sscanf("%d %d %d", "123 432")

Boom! Instead of having a clean way to represent partial parsing.

It'd still be better than regex partial parsing, where you get
absolute silence and no way to debug it, but it's not nearly as good
as could be done.

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/J3533OVU3DUFKRSP7P4F46LHXLK6FYFZ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to