この記事では、Pythonのソースコードが型ヒントに沿って書けているかチェックする方法を解説します。
ソースコードが型ヒント通りに書けているか確認するにはmypy
モジュールを使います。mypy
は、標準ライブラリではないのでpip
でインストールします。
それでは、実際に簡単なソースコードを作成してmypy
を使って型ヒント通りに書けているかチェックしてみましょう!
mypyのインストール
mypy
は標準モジュールではないのでインストールする必要があります。
仮想環境を利用したい場合は以下の記事を参照してください。
ここではpip
を使ってインストールします。
$ pip install mypy
pip
が使用できない方は以下の記事を参照してください。
ソースコードの用意
mypy
がインストールできたら次に、以下のような簡単なソースコードを用意します。名前は適当にtestmypy.py
とかで保存しましょう。
testmypy.py
num: int | float = 'abc'
vals: list[str] = [1, 2, 3]
num
変数にはint
、vals
変数にはstr
のlist
を型ヒントで指定していますが、敢えて異なる型のオブジェクトを代入しています。
型ヒントについては以下の記事を参照してください。
このソースコードが型ヒント通りに書けているかmypy
を使ってチェックしてみましょう!
mypyの実行
コマンドラインを起動して先ほどのtestmypy.py
が保存されている場所に移動します。僕の場合は/Users/user/Desktop/Python/mypy/
に保存したので以下のようにcd
を使って移動します。
$ cd /Users/user/Desktop/Python/mypy/
そしたら、testmypy.py
をmypy
コマンドで実行します。
$ mypy testmypy.py
実行すると以下のように型ヒント通り書かれていない箇所がエラーとして表示されます。
$ mypy testmypy.py
testmypy.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "Union[int, float]")
testmypy.py:2: error: List item 0 has incompatible type "int"; expected "str"
testmypy.py:2: error: List item 1 has incompatible type "int"; expected "str"
testmypy.py:2: error: List item 2 has incompatible type "int"; expected "str"
Found 4 errors in 1 file (checked 1 source file)
表示されたエラーを確認しつつ、型ヒント通りにソースコードを書き直して実行してみます。
testmypy.py
num: int | float = 3.14
vals: list[str] = ['a', 'b', 'c']
コマンドライン
$ mypy testmypy.py
Success: no issues found in 1 source file
Success
が表示されたので型ヒント通りに書かれていることが確認できました。