Pythonのassert文でかんたんテスト
314, 2020-03-06
目次
assert文の使い方
Pythonには単純なテストに使えるassert
文があります。
assert
の1つ目の式にテストしたい条件式などを書きます。
assert True
1つ目の条件式がTrue
であればassert
は何も発生させません。
条件式がFalse
であればAssertionError
例外を発生させます。
assert False
Traceback (most recent call last): File "sample.py", line 1, in <module> assert False AssertionError
assert
の1つ目の式のあとにカンマを付けて2つ目の式を書くと、その式の内容がAssertionError
の第1引数に渡されます。
assert False, '失敗しました'
Traceback (most recent call last): File "sample.py", line 1, in <module> assert False, '失敗しました' AssertionError: 失敗しました
これは↓のコードと等価です。
if not False: raise AssertionError('失敗しました')
__debug__変数による切り替え
assert
の1つ目の式がFalse
のとき、例外が発生しますが、これは組み込み変数__debug__
がTrue
の時に発生します。
逆に組み込み変数__debug__
がFalse
の時は例外は発生しません。
__debug__
は通常はTrue
になっています。
__debug__
をFalse
にしたい時は実行時に-O
オプションを付けます。
$ python -O sample.py
ちなみに__debug__
への代入などは不正な操作なので、やらないようにしましょう。
__debug__
の評価はインタプリタの開始時に行われます。
姉妹ブログを見に行く。