montasaurus/result: A simple Rust-like Result type for Python 3
a year ago
- #Python
- #Error Handling
- #Type Safety
- 一个受Rust启发的Python 3 Result类型,完全类型注解,用于处理Ok(值)或Err(错误)结果
- 从无人维护的库中分叉而来,该版本为实验性质,主要用于个人项目
- Result[T, E]是typing.Union[Ok[T], Err[E]]的泛型类型别名,无需自定义异常即可简化错误处理
- 提供is_ok、is_err、unwrap、expect和map等方法管理Result类型,类似Rust的处理方式
- 支持Python 3.10+的match语句,可优雅地模式匹配Ok和Err情况
- 包含as_result装饰器等实用功能,可将异常转换为Result类型,以及do notation链式操作语法
- unwrap_or、map_or和map_err等功能提供了灵活的值/错误处理和转换方式
- 设计时考虑内存效率,使用__slots__防止任意属性赋值
- 通过do_async支持异步操作,可在do notation中await结果
- 解决了MyPy类型推断常见问题,并提供更好的类型安全解决方案