У меня есть функция, которая может вернуть один из трех вещей:В Python, как я должен проверить, если переменная является None, Правда или Ложь
- успех (
True
) - недостаточность (
False
) - ошибка чтения/синтаксического анализа потока (
None
)
Мой вопрос, если я не должен испытать против True
или False
, то как Я вижу результат. Ниже, как я сейчас делаю это:
result = simulate(open("myfile"))
if result == None:
print "error parsing stream"
elif result == True: # shouldn't do this
print "result pass"
else:
print "result fail"
это действительно так просто, как удаление == True
части или я должен добавить три-булев тип данных. Я не хочу, чтобы функция simulate
выдавала исключение, поскольку все, что я хочу, чтобы внешняя программа выполняла с ошибкой, регистрирует ее и продолжает.
Вы задаете неправильный вопрос; вы должны просить о помощи, определяющей ваш результат ... в чем разница, которую вы воспринимаете между «сбоем» и «потоком анализа ошибок», что они означают, каковы последствия, какое действие вызывает вызывающий абонент, в каждом случае (pass, fail, parse error)? –
Я имитирую электрическую систему, если люди теряют власть в своих домах, это провал. Если я не могу прочитать файл моделирования, то это ошибка совершенно другого вида. –
Непонятно (возможно, потому, что это не очень хорошая идея), почему вы хотите избежать использования исключения, чтобы указать исключительное условие. Что-то убеждало вас в том, что исключения являются «тяжелыми», медленными или имеют какую-то другую проблему для такого рода случаев? Ответ Павла показывает, как это нужно делать с Python. –