我正在尝试在Python中引发警告,而不会导致程序崩溃/停止/中断。
我使用以下简单函数检查用户是否向其传递了非零数字。如果是这样,程序应警告它们,但按正常方式继续。它应该像下面的代码一样工作,但是应该使用class 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对其进行测试。
您想如何准确地通知用户?通过电子邮件还是短信?可能会导致这种情况,但是您需要具体说明。
—
aaronasterling
你为什么不只是
—
sje397
print
消息?
@ sje397的要点是,我希望能够通过unittest测试是否已引发警告。如果仅将消息打印出来,则无法通过unittest中的assertRaises来完成。
—
Tomas Novotny 2010年