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__ は通常の状況では True であり、最適化がリクエストされた場合(コマンドラインオプション -O)は False です。現状のコード生成器は、コンパイル時に最適化が要求されて いると assert 文に対するコードを全く出力しません。 実行に失敗した式のソースコードをエラーメッセージ内に入れる必要は ありません; メッセージはスタックトレース内で表示されます。

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

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