Hacker News new | ask | show | jobs
Pattern Matching in Python (github.com)
37 points by amosson 2066 days ago
3 comments

Always 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

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)
Wow 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.