您认为这三种编码方式中哪一种更好,或者更具可读性?foo
应该在两个字典中的项上运行,但是mydict2
可以是None
方案1:
for a,b in mydict1.items():
foo(a,b)
if mydict2:
for a,b in mydict2.items():
foo(a,b)
方案2:
for a,b in mydict1.items():
foo(a,b)
for a,b in mydict2.items() if mydict2 else dict().items():
foo(a,b)
方案3:
for a,b in chain(mydict1.items(), mydict2.items() if mydict2 else dict().items()):
foo(a,b)
尽早检测副词,并用空dict替换它-这是null object pattern:
这与用于避免可变默认参数的常见模式相同。然后你可以有一个(非常简单的)循环:
如果您控制相关的代码,请考虑更改某些内容,使
mydict2
首先不能是None
。你知道吗我喜欢第三个选项,因为单循环使程序的意图更加清晰。如果是我,我会做一个助手生成器,以分离关注点。你知道吗
相关问题 更多 >
编程相关推荐