1. ホーム
  2. python

[解決済み] Pythonで、変数がNone、True、Falseのいずれであるかをどのようにテストすればよいのでしょうか?

2022-04-14 15:06:02

質問

3つのうちの1つを返す関数があります。

  • 成功 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 部分を追加するか、tri-bool データタイプを追加するかです。私は simulate というのも、外側のプログラムがエラーに対して行うことは、それを記録して継続することだけだからです。

解決方法は?

例外を恐れるな! ログを取るだけで、プログラムを継続させるのは、とても簡単です。

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

そして、エラーやノーエラーでは十分な情報が得られない場合に備えて、何が問題だったのかをシミュレートするメソッドからより豊富な種類の通知を受けることができるようになりました。