小编典典

在 Python 中,我应该如何测试一个变量是 None、True 还是 False

all

我有一个可以返回以下三件事之一的函数:

  • 成功 ( True)
  • 失败 ( False)
  • 错误读取/解析流 ( None)

我的问题是,如果我不应该针对Trueor进行测试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零件一样简单,还是我应该添加一个 tri-bool
数据类型。我不希望simulate函数抛出异常,因为我希望外部程序处理错误只是记录它并继续。


阅读 69

收藏
2022-07-07

共1个答案

小编典典

不要害怕例外!让您的程序只记录并继续很简单:

try:
    result = simulate(open("myfile"))
except SimulationException as sim_exc:
    print "error parsing stream", sim_exc
else:
    if result:
        print "result pass"
    else:
        print "result fail"

# execution continues from here, regardless of exception or not

现在,您可以从模拟方法获得更丰富的通知类型,以了解究竟出了什么问题,以防您发现错误/无错误信息不够丰富。

2022-07-07