Re:Using enums to represent state in Rust
by GalaxySnail on Friday September 22, 2023 @01:15PM
(#37614713)
IMO Python's equivalent of Rust's Enums would be `typing.Union` [1]. It is more ergonomic and type-safe, and mypy supports type narrowing [2] and exhaustiveness checking on it [3].
[1] https://docs.python.org/3/library/stdtypes.html#types-union
[2] https://mypy.readthedocs.io/en/stable/type_narrowing.html
[3] https://docs.python.org/3/library/typing.html#typing.assert_...
They aren't as ergonomic or type-safe, and rather surprisingly the match statement is not an expression in Python's grammar, but regardless of its problems the match statement is very powerful, even more so than static equivalents.