【Python】アサーションでエラーを自動的に検出する

Python

簡単な使い方

リファレンスをみると

assert 文は、プログラム内にデバッグ用アサーション (debugging assertion) を仕掛けるための便利な方法です

正直これだけ見てもよくわからないですが、使い方は

assert 条件式, 条件式がFalseの場合に出力するメッセージ

assert文は条件式がTrueの場合は何も起きず、Falseの場合はAssertionErrorが発生します。

y = 0
assert y == 1, 'y is not equal 1'
-----------------------------------------------------------------
AssertionError                  Traceback (most recent call last)
<ipython-input-30-200824cb8454> in <module>
      1 y = 0
----> 2 assert y == 1, 'y is not equal 1'

AssertionError: y is not equal 1

例えば、x = np.array([10, 20, 30])のような配列があり、xは正のみである場合(商品の値段や数をイメージしてもらえるとわかりやすいかもです)

x = np.array([10, 20, 30])
assert x.all() < 0

このようにしておけば、

x = np.array([10, 20, 30])
x - 5 # [5, 15, 25, -1]
assert x.all() < 0

このようにxの値をいじった際に予期せぬエラーを起こしてくれます。

コメント

タイトルとURLをコピーしました