pythonic値がまだ設定されていない場合はdict
に値を設定する方法はありますか?値がまだ設定されていない場合にのみ、値を設定してください
現時点では私のコードは、if文を使用しています。
if "timeout" not in connection_settings:
connection_settings["timeout"] = compute_default_timeout(connection_settings)
dict.get(key,default)
は辞書を消費するコードのためではなく、別の関数に渡される辞書を準備しているコードに適しています。
connection_settings["timeout"] = connection_settings.get("timeout", \
compute_default_timeout(connection_settings))
は、dictにキーが含まれていても計算機能を評価しますが、それ以外のものは設定できません。バグ。
デフォルトの値は、デフォルト値が同じ場合です。
もちろん、デフォルト値として計算する必要のないプライマリ値を設定することは何度もありますが、もちろんdict.setdefault
を使用することもできます。しかしもっと複雑なケースはどうでしょうか?これを行うには
あなたの質問のタイトルを「他の関数に渡すためにデフォルトのkwarg値を設定する方法」のようなより正確なものにぶら下げてください。私はタイトルがあまりにも一般的だと感じています。 –