您認爲哪三種編碼風格更好,或者更具可讀性? foo
應當從兩個字典中的項目來運行,但mydict2
可以None
代碼樣式 - 用於if
選項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)
你知道迭代'mydict2.items()'只是不會做任何事情,如果它是空的?三元表達式是完全多餘的。 – jonrsharpe
@jonsharpe但是OP說它可能是'None'。嘗試遍歷'None'會引發錯誤。 – Sam
@Sam然後他們應該通過身份測試 - 「如果mydict2不是None」 – jonrsharpe