Mypyとは?
Mypyとは、Python用の静的型チェッカーです。具体的には、タイプアノテーションされたPythonのコードに対し、Mypyは型(タイプ)が間違っていた場合に警告を出してくれます。 Pythonは動的言語なので、型(タイプ)の間違いは実行しないと確認することはできませんでした。しかし、Mypyは静的チェッカーなので、コードを実行することなく、型(タイプ)の間違いを見つけることができます。
インストール方法
以下のコマンドを実行し、Mypyをインストールします。
pip install mypy
使い方の例
サンプルコードを利用して、使い方の例を示します。
サンプルコード
sample.py
def hello(name: str) -> str: # 入力値はstr型を想定
return "hello, " + name
if __name__ == '__main__':
hello(12345) # str型ではなくint型が入力されている。
上記のコードを見ると、hello関数は入力としてstr型を想定してるのに対し、main関数の中ではint型の引数を与えられて呼び出されているのがわかります。
Pythonは動的言語ですので、このような型間違いは実行するまで発見することができませんでした。 しかし、Mypyを使うことで、実行前にこのような型間違いを発見することができます。
実行方法
実行方法は以下の通りです。
% mypy sample.py
mypy_sample.py:5: error: Argument 1 to "hello" has incompatible type "int"; expected "str" [arg-type]
Found 1 error in 1 file (checked 1 source file)
これを見ると、hello関数で型間違いが発生していることが警告されていることがわかります。 このように、Mypyを活用することで、実行前に型エラーを見つけることができます。
VS Codeの拡張機能
Mypyによる型チェック結果を随時エディタ上に表示してくれるVS Code の拡張機能があります。 インストール方法を以下に簡潔に示します。
ms-python.python という拡張機能をインストールする。
拡張機能の設定を開き、「mypyを使用してPythonファイルをリントするかどうか。」のチェックをオンにします。
以下のように、型の間違いをエディタ上に表示してくれます。