Re:Structural pattern matching in Python 3.10
by kristjansson on Tuesday September 21, 2021 @12:52AM
(#28602134)
Yeah, there are several giant dictionaries (variously class to function, string to class, etc.) in just the project I’ve worked on most recently that fit that description.
Though considered from that perspective, it’s actually a bit of a disadvantage that the new match statement is a part of the language. It’s nice to dynamically extend (either as a first party developer or third party user) that sort of dictionary, effectively adding new branches to the implicit switch statement. A match statement is going to be fixed as written. Probably a readability and consistency win to remove spooky-action-at-a-distance, but at the cost of a bit of (ugly, pragmatic) usability
Re:Structural pattern matching in Python 3.10
by ufo on Tuesday September 21, 2021 @12:27AM
(#28602033)
By the way, does anyone here know how Python compiles the match statements under the hood? Are they converted into something equivalent to if-elif, which tries each option in sequence? Or does it do something more clever?
Re:Structural pattern matching in Python 3.10
by mixmastamyk on Tuesday September 21, 2021 @03:58AM
(#28602929)
The author replied here that yes, the bytecode is simple, with the exception of the Class matching.
It will be much more useful as an alternative to dispatch dictionaries, which are more a side-effect of the language lacking any case based control-flow.