Установите значение в dict, только если значение еще не установлено
Какой самыйвещий способ установить значение вdict
если значение еще не установлено?
На данный момент мой код использует операторы if:
if "timeout" not in connection_settings:
connection_settings["timeout"] = compute_default_timeout(connection_settings)
dict.get(key,default)
подходит для кода, потребляющего dict, а не для кода, который готовит dict для передачи другой функции. Вы можете использовать это, чтобы установить что-то, но это не красивее IMO:
connection_settings["timeout"] = connection_settings.get("timeout", \
compute_default_timeout(connection_settings))
оценил бы функцию вычисления, даже если dict содержал ключ; ошибка.
Defaultdict - это когда значения по умолчанию совпадают.
Конечно, много раз вы устанавливаете первичные значения, которые нене нужны вычисления по умолчанию, и они, конечно, могут использоватьdict.setdefault
, Но как насчет более сложных случаев?