Pythonの型チェッカを少しだけ覗く

Pythonの型チェッカーについて調べたい。 といっても基本的にはロバストPythonに書いてあることを読んで自分なりの理解をまとめる。 ついでに気になったことを調べておく、というのがこの記事の趣旨。

ロバストPythonという書籍のP77に以下のような記載がある。 「本質的に型チェッカとは検証済みドキュメントをもたらすものだ」 私はこの表現がいいなと思っているし、適切だと思っている。

Pythonにおいて型はアノテーションであり本質的にはコメントと同じである。 ただ、ただの自然言語のコメントよりPythonのアノテーションは検査しやすくなっているのだろう。

Pythonの型チェッカ

  • mypy: 最も広く使われる型チェッカ。厳密度を設定するオプションが多数設定できる。コードベースが重くなるとチェックに時間がかかるらしい。
  • Pyre: 別プロセスで起動してデーモンを起動しておくとチェックしてくれるタイプ。コードベースクエリというコードベースに含まれる属性の検索とPysaという静的アナライザが付属している。
  • Pyright: Microsofが作った型チェッカ。PylanceというVS Code拡張があり、リアルタイムでデータ型を検査できる。

ここまで調べていて思ったが、そもそもPythonの型チェッカはPyrightしかリアルタイムでデータ型を検査できないのだろうか?

それについては改めて次の機会に調べることにする。