Подтвердить что ты не робот

Написание типа 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:

Мой вопрос: стоит ли упоминать ошибку в подсказке моего типа?

4b9b3361

Ответ 1

Тип подсказки не может ничего сказать об исключениях. Они полностью выходят за рамки этой функции. Однако вы можете документировать исключение в docstring.

От PEP 484 - Тип подсказок:

Исключения

Нет синтаксиса для перечисления явно выраженных исключений. В настоящее время единственным известным вариантом использования этой функции является документальный, и в этом случае рекомендация заключается в том, чтобы помещать эту информацию в документную строку.

Ответ 2

Как правило, рекомендуется документировать ошибку. Это означает, что другой разработчик, использующий вашу функцию, сможет обрабатывать ваши ошибки без необходимости читать ваш код.