我有一个看起来像这样的函数:
def check_for_errors(result):
if 'success' in result:
return True
if 'error' in result:
raise TypeError
return False
在成功运行此函数时,我应该得到 bool
,但如果出现错误,我应该得到 TypeError
- 这没关系,因为我在另一个函数中处理它。
我的函数第一行如下所示:
def check_for_errors(result: str) -> bool:
我的问题是:我应该在类型提示中提及错误吗?
原文由 Yuval Pruss 发布,翻译遵循 CC BY-SA 4.0 许可协议
类型提示不能说明异常。它们完全超出了该功能的范围。但是,您仍然可以在文档字符串中记录异常。
来自 PEP 484——类型提示:
Guido van Rossum 强烈反对向类型提示规范添加异常,因为他不希望最终出现异常需要 _检查_(在调用代码中处理)或在每个级别显式声明的情况。