![]() |
1
9
这样做的缺点是它故意抑制错误,这在python中通常被认为是一个坏主意。
但是,您可以捕获并存储
例如:
这产生了:
这与DanD的答案类似,但其优点是存储发生的错误,而不是完全抑制错误。 无论你如何划分它,这个习惯用法都会感觉有些“不和谐”,但这是一种稍微更稳健的处理方法。 |
![]() |
2
6
以下是您所要求的,并让函数更加简洁。还更新了以正确捕获异常:
打印:
|
![]() |
3
4
我可能会考虑一些调整:
例如:
|
![]() |
4
4
这个问题已经得到了回答,但我觉得使用Maybe monad的界面可以变得更易读。允许左右调用的接口,例如:
此外,最好向用户返回一个Maybe类型以供使用,这样他们就可以选择进一步链接,而不是立即检索值。该功能类似于Swift的可选类型。
异常不会存储在我的回答中,因为调用者需要 maybe monad 检查异常本身,并在连锁操作失败时转换为“无”(即None)。这允许用户在使用链的条件下轻松处理故障。 |