Python Python函数式错误处理

📅 2026/6/16 14:43:26
Python Python函数式错误处理
Maybe/Option/Either 处理缺失值与错误。Result类型避免异常。Try成功或失败的容器。函数式链式调用。pyrsistent不可变数据。fn.py模块。toolz函数式工具。避免None检查的嵌套。from typing import Optional, Generic, TypeVar, UnionT TypeVar(T)E TypeVar(E)class Result(Generic[T, E]):def __init__(self, valueNone, errorNone):self.value valueself.error errorclassmethoddef ok(cls, value):return cls(valuevalue)classmethoddef err(cls, error):return cls(errorerror)def is_ok(self):return self.error is Nonedef map(self, func):if self.is_ok():return Result.ok(func(self.value))return selfdef bind(self, func):if self.is_ok():return func(self.value)return selfdef safe_divide(a, b):if b 0:return Result.err(div by zero)return Result.ok(a / b)result (Result.ok(10).bind(lambda x: safe_divide(x, 2)).map(lambda x: x * 3))if result.is_ok():print(fResult: {result.value})else:print(fError: {result.error})