[Python-Dev] Re: PEP 642 v2: Explicit constraint patterns *without* question marks in the syntax

2020年11月13日 13:56:03 -0800

On 2020年11月13日 at 17:36, Jim J. Jewett <[email protected]> wrote:
> I *hope* this was a typo! If
>
> case Point(x=a, y=b):
>
> assigns to a and b (instead of x and y, as in a normal call), then that is
> ... going to be very easy for me to forget, and to miss even when I'm aware
> of it.
>
No typo - this is _precisely_what the main proposal on PEPs 634, 635 and
636 is suggesting, and tha PEP 642 is trying to avoid.
Here it is working as is on my Python with PEP 622 build:
```
Python 3.10.0a0 (heads/patma:1ba56a003b, Aug 6 2020, 02:00:58)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.17.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from dataclasses import dataclass
In [2]: @dataclass
 ...: class Point:
 ...: x: float
 ...: y: float
 ...:
In [3]: def get_coords(p):
 ...: match p:
 ...: case Point(x=a, y=b):
 ...: return a, b
 ...: case _:
 ...: raise TypeError()
 ...:
In [4]: get_coords(Point(3, 4))
Out[4]: (3, 4)
```
>
> -jJ
> _______________________________________________
> Python-Dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/F66J72JUEAUKBM5VDSMG4HRHUEQBWI5M/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/ASAMVXQGHJ6JZH3NPKRYRAV7F7VCMAW6/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to