Pattern Matching in Python
github.com
Pattern Matching in Python
1–5 of 5 posts
Re: Pattern Matching in Python
#2See also the PEPs: https://www.python.org/dev/peps/pep-0634/#abstract
Re: Pattern Matching in Python
#3Wow I love this. This is one of my favorite features of Rust/OCaml (along with variant types / data-bearing-enums).
I think the latter would help a lot with error handling in particular, not to mention defining protocols.
Re: Pattern Matching in Python
#4Always wanted a switch coding style. Now, offered one i am having second thoughts introspecting if my code improves for readability if I use one. I think on balance yes. I've always like this approach to a single value or expression gating choices.
Also wondering about the degenerate forms of fall through alternates, so it's a stack of code optionally run.
There is another link to c code switches and duffs device in hn recently
Re: Pattern Matching in Python
#5Always wanted a switch coding style. Now, offered one i am having second thoughts introspecting if my code improves for readability if I use one. I think on balance yes. I've always like this approach to a single value or expression gating choices. Also wondering about the degenerate forms of fall through alternates, so it's a stack of code optionally run. There is another link to c code switches and duffs device in…
Switch statements can work well from a readability standpoint such as the HTTP error example they use. However, I almost feel it is more Pythonic to use a dictionary instead, collapsing the function into:
def http_error(status):
try:
return HTTP_STATUS_CODES[status]
except KeyError:
return "Something else"
Also, method polymorphism always seemed more powerful and intuitive to me than switch statements when the operation is something like: multiply(scalar, scalar)
multiply(vector, scalar)
multiply(matrix, scalar)