プログラムをクラッシュ/停止/中断させずに 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 ドキュメントを参照してください:ここ