> From: Baptiste Carvello <[email protected]>
> Subject: [Python-Dev] Re: PEP 622 constant value syntax idea
>
> What about simply "is", which is already a keyword?
>
> AFAIK "is" has no meaning as a prefix operator as of now, so hopefully
> it would not make the grammar ambiguous (how can one check that for sure?).
>
> match color:
> case is RED:
> print("red")
> case is BLUE:
> print("blue")
> case other:
> print(f"unknown color {other}")
>
> or with Rhodri James' example:
>
> match value:
> case is x:
> print("value matches")
> case Point(is x, y):
> print("value matches x, y captured")
> case Line(Point(is x1, y1), Point(x2, is y2)):
> print("wouldn't call that pretty, but not ugly either")
>
>
> Cheers,
> Baptiste
>
> P.S.: granted, it could mislead some users into thinking that the
> comparison is done with "is" instead of "=="; but then, patterns are
> special in many ways, users will have to just learn them…
That is exactly why I think you should make the special things special and keep
the familiar things as you know them.
So constants and variables like they are in other uses and matched
values/patterns using a special construction/syntax.
And we don’t need the catch all case if we would have the IMHO more familiar:
match Color(…) as color:
case RED:
print(f”{color} is red")
case BLUE:
print(f”{color} is blue”)
else:
print(f"unknown color {color}”)
thus eliminating the whole ‘case <var>’ issue.
_______________________________________________
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/4NTH5H6RX2KTVVJFJUF53UWESJIBCLYS/
Code of Conduct: http://python.org/psf/codeofconduct/