hrhr49 blog

TypeguardでPython実行時に型チェック

2020-11-15 python typeguard

Typeguardとは

Pythonのスクリプト実行時に型アノテーションの情報を使った 型チェックをしてくれるパッケージ

インストール

pipコマンドでインストールできる。

1pip install typeguard

使い方

自分が使いそうな機能だけ書いておく。他にも便利なのがいろいろあるので 詳細はUser guide — Typeguard 2.10.0.post3 documentationを参照。

デコレータを使ったやり方

以下のように、typecheckedデコレータをつけた関数は実行時に型チェックされる。

 1from typeguard import typechecked
 2
 3# typecheckedデコレータがついた関数は、スクリプト実行時に型チェックされる
 4@typechecked
 5def f(x: int):
 6    print(x)
 7
 8f('これは文字列だよ')
 9# 型があっていない場合、以下のエラーが投げられる。
10# TypeError: type of argument "x" must be int; got str instead

pytestのプラグインとして使う

以下のように、--typeguard-packages にチェックするパッケージ名を指定することで、 そのパッケージをチェック対象にしてpytestを実行できる。

1# foo, bar, xyzパッケージをチェック対象にする。
2pytest --typeguard-packages=foo.bar,xyz

参考


Categories: