プログラムを中断せずにPythonで警告を出す 質問する

プログラムを中断せずにPythonで警告を出す 質問する

プログラムをクラッシュ/停止/中断させずに Python で警告を発生させようとしています。

ユーザーがゼロ以外の数値を渡したかどうかを確認するために、次の簡単な関数を使用します。渡した場合、プログラムは警告を発しますが、通常どおり続行します。以下のコードのように動作しますが、手動で警告を出力する代わりに、Warning()クラスまたは を使用する必要があります。Error()Exception()

def is_zero(i):
   if i != 0:
     print "OK"
   else:
     print "WARNING: the input is 0!"
   return i

以下のコードを使用して関数に 0 を渡すと、プログラムがクラッシュし、値が返されません。代わりに、プログラムを通常どおり続行し、関数に 0 を渡したことをユーザーに通知するようにします。

def is_zero(i):
   if i != 0:
     print "OK"
   else:
     raise Warning("the input is 0!")
   return i

unittest でテストして警告がスローされたかどうかをテストできるようにしたいのですが、メッセージを単に印刷するだけでは、unittest の assertRaises でテストすることはできません。

ベストアンサー1

import warnings
warnings.warn("Warning...........Message")

Python ドキュメントを参照してください:ここ

おすすめ記事