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