Python

【Python】assert文でデバッグする

この記事では、Pythonでassert文を使ってデバッグする方法を解説します。

assert文の使い方

assert文は、以下のように記述します。

assert 条件式, エラーメッセージ

条件式がFalseだった場合、AssertionErrorが発生し、エラーメッセージが表示されます。条件式がTrueだった場合は、特に何も起きません。

サンプル

以下のコードでは、受け取った値の型を調べて、int型以外ならエラーを発生させます。

main.py

num = '1'

assert isinstance(num, int), 'int型ではありません'

実行結果

Traceback (most recent call last):
  File "main.py", line 3, in 
    assert isinstance(num, int), 'int型ではありません'
AssertionError: int型ではありません

assert文を無視する

assert文は、組み込み定数__debug__Trueの場合のみ処理されます。つまり、__debug__Falseすることで、定義されているassert文を無視することができます。

__debug__をFalseにするには、Pythonコマンドでコードを実行する際に、コマンドラインオプション-Oを付けて実行します。

main.py

print('start')

assert False, '処理されれば確実にエラーを発生させる'

print('end')

コマンドラインから実行

$ python -O main.py
start
end

このように、assert文を無視することができました。

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』