概要
Python
の関数定義で ->
が使われるようになったのはPython
3からで、これは関数の戻り値の型アノテーションを示す記号です。->
はあくまで「ヒント」であり、Python
インタプリタ自体はその型を強制することはありません。これはプログラムの読みやすさや型チェックツール(例: mypy)を使った静的型チェックに役立ちます。
使用例
例えば、次のように定義された関数では、戻り値が整数型であることをアノテーションで示しています。
def example(x: int) -> int:
return x + 1
この場合、example.__annotations__
を確認すると、戻り値が int
型としてアノテーションされていることがわかります。
print(example.__annotations__)
# 結果: {'x': <class 'int'>, 'return': <class 'int'>}
このアノテーションを使うことで、コードを読みやすくし、第三者が関数の引数や戻り値の型を理解しやすくなります。
型アノテーションのメリット
- コードの可読性向上
型アノテーションを追加することで、関数の仕様を明確に示し、他の開発者がコードを理解しやすくなります。 - 静的型チェックツールと併用
Python
自体は型を強制しませんが、外部ツール(例: mypy)を使うことで、コードの型に関するエラーを事前にチェックできます。これにより、実行時エラーの発生を未然に防ぐことができます。 - ドキュメント生成への活用
アノテーションは、自動ドキュメント生成ツールによって関数の引数や戻り値の型として表示され、ドキュメンテーションにも役立ちます。
制限事項
型アノテーションはあくまで「ヒント」であり、Python
はこれを強制しません。例えば、次のようなコードはエラーにはなりませんが、意図した型と違う値を返しています。
def example(x: int) -> str:
return x + 1
このコードでは、str
型を戻り値として期待していますが、実際には整数が返されます。このような場合、静的型チェックツールを使わない限り、Python
自体はエラーを報告しません。
Python 3.5以降の型ヒントの進化
Python
3.5から導入されたPEP 484
では、型ヒントが公式にサポートされるようになりました。これにより、関数定義での引数や戻り値の型指定がより洗練され、型安全なコードを書くための基盤が整いました。
結論
Python
の ->
は関数の戻り値に対する型アノテーションを表し、型ヒントとして利用されます。これはコードの可読性を高め、静的型チェックツールと連携することで、より堅牢なコードを書くのに役立ちます。Python
自体は型を強制しませんが、mypyのようなツールを使用することで、型に関する問題を事前に検出できます。