Я намагаюся підняти попередження в 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. Якщо я просто надрукував повідомлення, я не зможу перевірити його за допомогою assrtRaises в unittest.
print
повідомлення?