Pythonは最近、静的型付けの周りに大きな進展がありました。 Python 3.5から、タイプヒントは事です。それはPEP 0484のすべてについてだった。型ヒント構文は、先にPEP 3107で導入された関数注釈構文に完全に基づいています。これにより、PEP 0484は新しい構文を伴わない変更となり、非常に魅力的で適応しやすくなりました。
それでは、どのように機能しますか?この構文は、実際には単純な場合にはかなり直感的です。たとえば、
def greeting(name: str) -> str:
return 'Hello ' + name
非常に複雑なものもサポートしています。ユーザー型、呼び出し可能、共用体を使用する多重オーバーロード、さらには汎用型を使用することもできます。 PEP自体に多くの例があります。
また、最後のPyConでタイプヒントについてのGuido van Rossum’s talkを見ることもできます。これは本当に興味深く、詳細をたくさんカバーしています。
最後に、これらのタイプヒントをすべて使用して、それらとは何をしていますか?まあ、Python 3.5とPEP 0484のかなり前に存在していたこの素晴らしいライブラリがあります。実際に、正式に導入された型ヒント構文は、そのライブラリに基づいていますが、ちょうど形式化されています。ライブラリはmypyと呼ばれ、基本的にPythonの静的型チェッカーです。インストールされると、実行可能ファイルmypy
を使用して、タイプ注釈を含むPythonスクリプトをタイプ・チェックすることができます。例えば
は、のは、ファイル内の関数定義の上に置くと、間違った型の引数でそれを呼び出してみましょう:
ファイルにmypyを実行
greeting(123)
、次のような出力が得られます。
$ mypy test.py
test.py:4: error: Argument 1 to "greeting" has incompatible type "int"; expected "str"
mypyは技術的には実験的ですが、本当にうまく動作する非常に強力なツールです。あなたがこのことに慣れており、型の注釈を採用するなら、それを実際に調べるべきです。
PyCharmが[PEP 484](https://www.python.org/dev/peps/pep-0484/)をサポートしているのかもしれませんか? –