我在一个函数中有很多连续的语句,如下所示:
if condition1:
yield x
else:
yield None
if condition2:
yield y
else:
yield None
...
有没有办法让这种代码更简洁?
答案 0 :(得分:4)
使用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
注意:第二部分答案因以下评论中给出的原因而受到影响。