私はサーバにリクエストを送信し、レスポンスを受け取ります。状況によってはレスポンスが異なるため、それぞれの処理方法が異なります。異なるサーバレスポンスをエレガントに扱う
私は何をしたいのは、この種のものを持っている:
if response.getChild('child1')... == x:
do_math()
return stuff1
elif response.getChild('child2')... == y
do_different_math()
return stuff2
etc...
しかし、私は私が複数のtry-除いを使用する必要がありますされ、別の子供が存在しない可能性があることを問題に実行していますフロー制御。これは多くのスペースを必要とし、ひどく醜いです:
try:
if response.getChild('child1')... == x:
do_math()
return message1
except:
return generic_error_message
try:
if response.getChild('child2')... == y:
do_different_math()
return stuff2
except:
return generic_error_message
etc...
異なる可能な対応を扱うエレガントな方法はありますか?
[ 'GET']( Python辞書のhttps://docs.python.org/2/library/stdtypes.html#dict.get)メソッドには、期待値が見つからない場合にデフォルト値を提供するという面白い動作があります。 'getChild'メソッドのドキュメントを見て、それが[mapping](https://docs.python.org/3/glossary.html#term-mapping)オブジェクトでないかどうかを確認してください。もしそうなら、あなたは 'response.getChild( 'child2'、None)'のようなアプローチを使い、 'None'resultで処理することができます。 –