警告フィルタは、ある警告を無視すべきか、表示すべきか、あるいは (例外を送出する) エラーにするべきかを制御します。
概念的には、警告フィルタは複数のフィルタ仕様からなる順番付けられた リストを維持しています; 何らかの特定の警告が生じると、フィルタ仕様の 一致するものが見つかるまで、リスト中の各フィルタとの照合が行われます; 一致したフィルタ仕様がその警告の処理方法を決定します。 フィルタの各エントリは (action, message, category, module, lineno) からなるタプルです。ここで:
値 | 処理方法 |
---|---|
"error" |
一致した警告を例外に変えます |
"ignore" |
一致した警告を決して出力しません |
"always" |
一致した警告を常に出力します |
"default" |
一致した警告のうち、警告の原因になった ソースコード上の場所ごとに、最初の警告のみ出力します。 |
"module" |
一致した警告のうち、警告の原因になった モジュールごとに、最初の警告のみ出力します。 |
"once" |
一致した警告のうち、警告の原因になった 場所にかかわらず最初の警告のみ出力します。 |
0
になります。
Warning クラスは組み込みの Exception クラスから
導出されているので、警告をエラーに変えるには単に
category(message)
を raise
します。
警告フィルタは Python インタプリタのコマンドラインに渡される
-W オプションで初期化されます。インタプリタは
-W オプションに渡される全ての引数を
sys.warnoptions
; に変換せずに保存します; warnings
モジュールは最初に import
された際にこれらの引数を解釈します
(無効なオプションはsys.stderr
にメッセージを出力した後
無視されます)。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。