Написание типа Python с исключениями
У меня есть функция, которая выглядит так:
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:
Мой вопрос: стоит ли упоминать ошибку в подсказке моего типа?
Ответы
Ответ 1
Тип подсказки не может ничего сказать об исключениях. Они полностью выходят за рамки этой функции. Однако вы можете документировать исключение в docstring.
От PEP 484 - Тип подсказок:
Исключения
Нет синтаксиса для перечисления явно выраженных исключений. В настоящее время единственным известным вариантом использования этой функции является документальный, и в этом случае рекомендация заключается в том, чтобы помещать эту информацию в документную строку.
Ответ 2
Как правило, рекомендуется документировать ошибку. Это означает, что другой разработчик, использующий вашу функцию, сможет обрабатывать ваши ошибки без необходимости читать ваш код.