次のコードを検討してください。
>>> def default_answer():
... print "Default was required!"
... return 100
...
>>> g = { 'name': 'Jordan', 'age': 35 }
>>> result = g.get('age', default_answer())
Default was required!
>>> result = g.pop('age', default_answer())
Default was required!
g
期待されるキーが含まれているかどうかに関係なく、default_answerが呼び出されることに注意してください。これはプログラム的には理にかなっていますが、default_answer
計算コストが高い場合、これは面倒です(多くのコードを実行して、破棄される値を作成する)。
いつも電話せずにこれを書くことを考えることができる唯一の方法default_answer
は次のとおりです。
result = g.pop('age', False) or default_answer()
これはそれを行うための最良の方法ですか?
(遅延評価を使用してオブジェクトに置き換えることでdefault_answer
もこの問題の一部が解決されることを認識していますが、それはこの質問の範囲外です)。