On Sun, 3 Jan 2021 at 23:38, Nick Coghlan <ncogh...@gmail.com> wrote: > > The instance attribute syntax arose from trying to deal with two problems > from class patterns in PEP 634: > > * "ATTR=TARGET" using "=" to bind to the right instead of to the left > * no subsequent path to ever offering a syntax for *retrieving* multiple > attributes in ordinary expressions outside pattern matching > > The minimal fix for the first point would have been just "case object(host=as > host, port=as port}:", but that couldn't ever be used to retrieve multiple > attributes, as "object(host, port)" is already a function call.
OK, so there's our dispute. Neither of those seem to me to be problems with PEP 634. 1. I view ATTR=PLACEHOLDER as *equality* with a placeholder that gets filled in, not a binding that goes left to right. (And no, I don't have a problem with the rule that the placeholder must be on the right). 2. I don't see any immediate reason to assume we want to "retrieve multiple attributes in ordinary expressions". We can easily add a "match let" statement that did match-style destructuring, why do we need it to be built in to ordinary assignment (which is what I assume you mean)? So IMO you're producing a weird syntax to solve problems I don't believe exist in the first place. Whereas PEP 634 offers a feature that I think I would find useful, using a syntax that I find perfectly comfortable in the context in which it's defined. Paul _______________________________________________ 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/X3C46TCWHDLL6AZG3RYEAUCPM3AA4GRU/ Code of Conduct: http://python.org/psf/codeofconduct/