我有,在功能,很多連續的語句如下所示:If/yield cascade - 如何更簡潔?
if condition1:
yield x
else:
yield None
if condition2:
yield y
else:
yield None
...
有沒有一種方法,使更簡潔這種代碼?
我有,在功能,很多連續的語句如下所示:If/yield cascade - 如何更簡潔?
if condition1:
yield x
else:
yield None
if condition2:
yield y
else:
yield None
...
有沒有一種方法,使更簡潔這種代碼?
使用conditional expressions將使其更簡潔:
yield x if condition1 else None
yield y if condition2 else None
或者,如果你有很多(值,條件)對,不介意評估前面的所有條件:
for val, cond in [(x, condition1), (y, condition2)]:yield val if cond else None
注意:第二部分回答由於com中給出的原因在下面。
'yield x if condition1 else None'? – dano 2014-10-06 19:33:12
你能舉一個你有什麼樣的條件的例子嗎?否則,我所能想到的只是將它作爲一行: 'yield x if condition1 else None' – MrHug 2014-10-06 19:33:43
刪除了switch-statement標記,因爲Python沒有switch語句,我無法想象你會如何期待如果有的話,你可以幫助你。 – abarnert 2014-10-06 19:43:38