\

Pythonのassert文は、プログラムが期待する条件が満たされているかをチェックするためのデバッグ支援ツールです。基本的な構文は次のようになります。

assert 条件式, 条件式がfalseになったときに出力するメッセージ

条件式がfalseの場合、例外AssertionErrorが発生します。一方、条件式がtrueの場合は何も起こらずに次の命令を実行します。

Pythonにはunittestというテストを行うためのクラスが用意されていますが、unittestを使用するよりもassert文を使用する方が簡単にテストを行うことができます。

assert文を使うことで、プログラムが想定外の動作をした場合にすぐにエラーを出力してプログラムを終了させることができます。

assert文の使い方

assert文の基本的な使い方を以下に示します。

text1 = "何も起こらない"
text2 = "エラー"
text3 = "何も起こらない"

assert text1 == text3  # 何も起こらない
assert text1 == text2  # AssertionErrorが発生

この例では、assert文がtext1 == text3True)を評価すると何も起こらず、次にtext1 == text2False)を評価するとAssertionErrorが発生し、プログラムが終了します。

また、assert文では条件式の後にカンマを付けてエラーメッセージを記述することができます。

text1 = "何も起こらない"
text2 = "エラー"

assert text1 == text2, 'text1 is not equal to text2'  # AssertionError: text1 is not equal to text2

このようにassert文を使用することで、プログラム中で想定と異なる振る舞いをしている場合に、すぐに気づくことができます。

assert文の無効化

assert文を無効にするには、Pythonの起動時にコマンドラインオプションで-Oまたは-OOを指定します。

$ python -Oc 'assert False'  # 何も起こらない

$ python -c 'assert False'  # AssertionErrorが発生

assert文はPythonの組み込み定数__debug__Trueのときに有効で、-O-OOを指定すると__debug__Falseになり、assert文が無効になります。

以上、Pythonのassert文についての基本的な情報を提供しました。この情報がPythonのデバッグやテストに役立つことを願っています。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です