Python's equivalent of Rust's Enums would be the __match_args__ machinery rather than enums themselves, ironically.
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.