Mark Shannon wrote:
> On 02/04/2021 7:19 am, Brandt Bucher wrote:
> > I agree that self-matching classes should absolutely allow keyword matches. 
> > I had no idea the PEP forbade it.
> PEP 634 allows it.

PEP 634 says:

> For a number of built-in types (specified below), a single positional 
> subpattern is accepted which will match the entire subject; for these types 
> no keyword patterns are accepted.

(https://www.python.org/dev/peps/pep-0634/#class-patterns)

> Most checks are cheap though.
> Checking for duplicates in `__match_args__` can be done at class creation 
> time, and checking for duplicates in the pattern can be done at compile time.

I assume the compile-time check only works for named keyword attributes. The 
current implementation already does this.

-1 on checking `__match_args__` anywhere other than the match block itself.

Guido van Rossum wrote:
> On Fri, Apr 2, 2021 at 3:38 AM Mark Shannon m...@hotpy.org wrote:
> > Are there are any use-cases? 
> > The test-case `int(real=0+0j, imag=0-0j)` is contrived, but I'm struggling 
> > to come up with less contrived examples for any of float, list, dict, 
> > tuple, str.
> There could be a subclass that adds an attribute. That's still contrived  
> though.

I could see the case for something like `case defaultdict({"Spam": s}, 
default_factory=f)`. I certainly don't think it should be forbidden.
_______________________________________________
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/L2RB6WYAOSLZECG4N2JTYMAAQX3U64GA/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to