0

在使用 setdefault (vs. defaultdict) 时看到了setdefault vs. get和 here的讨论。

我的问题更多是关于编码风格。

同意我们不应该setdefault用于简单的 dict 设置:

d = {}
d[k] = v

但不是:

d.setdefault(k, v)

(使用可能已经存在的setdefault提示,我们不想覆盖它)kd

正如上面链接中提到的 - 我们还使用setdefaultwhen 想要获取对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吗?

4

0 回答 0