如果尚未设置值,那么在 a 中设置值的最Pythonic方法是什么?dict
目前我的代码使用 if 语句:
if "timeout" not in connection_settings:
connection_settings["timeout"] = compute_default_timeout(connection_settings)
dict.get(key,default)
适用于使用 dict 的代码,不适用于准备将 dict 传递给另一个函数的代码。你可以用它来设置一些东西,但它并不漂亮:
connection_settings["timeout"] = connection_settings.get("timeout", \
compute_default_timeout(connection_settings))
即使字典包含密钥,也会评估计算函数;漏洞。
Defaultdict 是默认值相同时。
当然,很多时候你将不需要计算的原始值设置为默认值,它们当然可以使用dict.setdefault
. 但是更复杂的情况呢?