On 11/14/20 10:17 PM, Guido van Rossum wrote:
It’s a usability issue; mappings are used quite differently than sequences. Compare to class patterns rather than sequence patterns.

I just found the following explanation from the superceded PEP 622 as to why extra keys are ignored:

> Extra keys in the subject are ignored even if **rest is not present. This is different from > sequence pattern, where extra items will cause a match to fail. But mappings are actually > different from sequences: they have natural structural sub-typing behavior, i.e., passing a
> dictionary with extra keys somewhere will likely just work.

I suppose this makes sense when using "match" to work with a dictionary used as a lightweight object, which I expect would be relatively common.

The examples I originally presented assume use of "match" for parsing, and parsing tends to default to stricter matching. :)

--
David Foster | Seattle, WA, USA
Contributor to TypedDict support for mypy
_______________________________________________
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/YGN47RMUHK642TCVA32GWI3OBQIIEKZV/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to