web-dev-qa-db-ja.com

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:

私の質問は次のとおりです。タイプヒンティングにエラーを記載する必要がありますか。

31
Yuval Pruss

型のヒントでは、例外については何も言えません。これらは完全に機能の範囲外です。ただし、例外をドキュメント文字列にドキュメント化することはできます。

From PEP 484-Type Hints

例外

明示的に発生した例外をリストする構文は提案されていません。現在、この機能の唯一の既知のユースケースはドキュメントです。この場合、推奨事項はこの情報をdocstringに入れることです。

34
Martijn Pieters

通常、エラーを文書化することをお勧めします。これは、関数を使用する別の開発者が、コードを読まなくてもエラーを処理できることを意味します。

3
Jim Wright