I very much second this opinion

/Christian


On Sat, 14 Nov 2020, 15.16 Joao S. O. Bueno, <jsbu...@python.org.br> wrote:

>
>
> On Sat, 14 Nov 2020 at 10:16, Nick Coghlan <ncogh...@gmail.com> wrote:
>
>> On Fri, 13 Nov 2020 at 09:39, David Mertz <me...@gnosis.cx> wrote:
>> >
>> > I have read a great deal of discussion on the pattern matching PEPs and
>> less formal discussions.  It is possible I have overlooked some post in all
>> of that, of course.
>> >
>> > ... OK, just saw Guido's "wait for new SC" comment, which I suppose
>> applies to this too :-).
>> >
>> > One idea that I cannot recall seeing, but that seems to make sense to
>> me and fit with Python's feel is using a WORD to distinguish between a
>> variable value and a binding target.  That is, instead of a special symbol
>> prefixing or suffixing a name, either to indicate it is or is not a binding
>> target.  Of course, whether the extra word would be used for binding or for
>> NOT binding is a question still.
>>
>> If someone was prepared to pursue this to the level of writing a 3rd
>> competing PEP, the variant I would personally like to see written up
>> is the one where capture patterns are all prefixed with the keyword
>> `as`.
>>
>> PEP 634 already uses the `PATTERN as NAME` syntax to combine other
>> match patterns with a capture pattern, and I'm going to be amending
>> PEP 642 to propose using `as` when embedding capture patterns inside
>> class patterns (`ATTR as NAME`) and mapping patterns (`KEY as NAME`).
>> From there, it's an entirely plausible step to also require the `as`
>> prefix on capture patterns in sequence patterns and as top level
>> standalone patterns.
>>
>> I personally don't think that extra step would be a good idea due to
>> the inconsistency with name binding and iterable unpacking in regular
>> assignment statements (if I liked the idea, I'd have already included
>> it in PEP 642), but I think "anchor match patterns in normal
>> expressions rather than assignment target syntax" is a credible enough
>> idea that the overall design process would benefit from having a
>> champion write it up.
>>
>> > To me these read better than the punctuation characters.  But I guess
>> some folks have suggested enlisting 'as', which is a word, of course.
>>
>> Indeed, and one that doesn't look too bad for top level patterns:
>>
>>     NOT_FOUND = 404
>>     match http_code:
>>       case 200:
>>           print("OK document")
>>       case NOT_FOUND:  # use the variable value
>>           print("Document not found")
>>       case as other_code:  # bind this name
>>           print("Other HTTP code")
>>
>> It starts to look a bit more strange when matching sequences, though:
>>
>>     match seq:
>>         case as first, *middle, as last:
>>             ... # Or should that be "*as middle"?
>>
>
> Although the spacing there should probably remain optional, I think
> that "* as middle" is very straightforward and easy to read.
>
>
>>
>> Cheers,
>> Nick.
>>
>> --
>> Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
>> _______________________________________________
>> Python-Dev mailing list -- python-dev@python.org
>> To unsubscribe send an email to python-dev-le...@python.org
>> https://mail.python.org/mailman3/lists/python-dev.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/python-dev@python.org/message/LKRWAQX57OJANWQHG2SWL2UG4ZZRRKPF/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
> _______________________________________________
> Python-Dev mailing list -- python-dev@python.org
> To unsubscribe send an email to python-dev-le...@python.org
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-dev@python.org/message/GFVLLQVHN2QWNX6LWHESBGRMXHLF3Z74/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/7NFU33AMGMPJDZDODMPN5VUL64RUDUW2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to