On 06/23/2020 09:01 AM, PEP 622 wrote:
from enum import Enum
class Color(Enum): BLACK = 1 RED = 2
BLACK = 1 RED = 2
match color: case .BLACK | Color.BLACK: print("Black suits every color") case BLACK: # This will just assign a new value to BLACK. ...
As others have noted, the leading dot to disambiguate between a name assignment and a value check is going to be a problem. I think it's also unnecessary because instead of
case BLACK: blahblah()
we can do
case _: # look ma! BLACK is just "color"! BLACK = color # if you really want it bound to another name
In other words, the PEP is currently building in two ways to do the same thing -- make a default case. One of those ways is going to be a pain; the other, once renamed to "else", will be perfect! :-) As a bonus, no special casing for leading dots.