我在使用 setdefault (vs. defaultdict) 时看到了setdefault vs. get和 here的讨论。
我的问题更多是关于编码风格。
同意我们不应该setdefault
用于简单的 dict 设置:
d = {}
d[k] = v
但不是:
d.setdefault(k, v)
(使用可能已经存在的setdefault
提示,我们不想覆盖它)k
d
正如上面链接中提到的 - 我们还使用setdefault
when 想要获取对dict key
's 的引用value
(并使用它)
d.setdefault(k, []).append(v)
现在,这是我的情况:
self._container["abc"] = self._object_handler.add(MyObject(*params))
instance = self._container["abc"]
instance.set_bla()
<more setting>
我需要这样做几次,所以我想在一行中完成所有操作。因为我认为在一行中分配两次是不可读的:
instance = self._container["abc"] = self._object_handler.add(MyObject(*params))
我认为使用 setdefault 更好:
instance = self._container.setdefault("abc", self._object_handler.add(MyObject(*params)))
你怎么说 - 它也是用例setdefault
吗?