Python Python函数式错误处理
2026/6/16 14:43:13 网站建设 项目流程

Maybe/Option/Either 处理缺失值与错误。Result类型避免异常。Try成功或失败的容器。函数式链式调用。pyrsistent不可变数据。fn.py模块。toolz函数式工具。避免None检查的嵌套。

from typing import Optional, Generic, TypeVar, Union

T = TypeVar('T')
E = TypeVar('E')

class Result(Generic[T, E]):
def __init__(self, value=None, error=None):
self.value = value
self.error = error

@classmethod
def ok(cls, value):
return cls(value=value)

@classmethod
def err(cls, error):
return cls(error=error)

def is_ok(self):
return self.error is None

def map(self, func):
if self.is_ok():
return Result.ok(func(self.value))
return self

def bind(self, func):
if self.is_ok():
return func(self.value)
return self

def 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(f"Result: {result.value}")
else:
print(f"Error: {result.error}")

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询