6.2 Assert 文 (assert statement)

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

assert_stmt ::= "assert" expression ["," expression]
Download entire grammar as text.

単純な形式 "assert expression" は、

if __debug__:
   if not expression: raise AssertionError

と等価です。拡張形式 "assert expression1, expression2" は、

if __debug__:
   if not expression1: raise AssertionError, expression2

と等価です。

上記の等価関係は、 __debug__AssertionError が、同名の組み込み 変数を参照しているという前提の上に成り立っています。 現在の実装では、組み込み変数 __debug__ は通常は 1 であり、 インタプリタに (コマンドラインオプション -O で) 最適化を要求すると 0 になります。現状のコード生成器は、コンパイル時に最適化が要求されて いると assert 文に対するコードを全く出力しません。 実行に失敗した式のソースコードをエラーメッセージ内に入れる必要は ありません; メッセージはスタックトレース内で表示されます。

__debug__ への代入は不正な操作です。組み込み変数の値は、 インタプリタが開始するときに決定されます。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。