python - if/yield 级联 - 如何使更简洁?

标签 python if-statement yield

在一个函数中,我有很多连续的语句,如下所示:

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, 条件1), (y, 条件2)]:yield val if cond else None

注意:答案的第二部分因下面评论中给出的原因而受到影响。

关于python - if/yield 级联 - 如何使更简洁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26223479/

相关文章:

sql - if-then-else 逻辑可以在 Redshift 中完成吗?

java - 增加3个变量

Python:在生成器对象上调用 list() 会产生不正确的结果

ruby - 重写简单的 ruby​​ 函数以使用 block

reactjs - 在 React Native 中的 const 中插入 if/else 语句的正确方法?

java - 如何跳过 else 语句一定次数,然后重新开始

python - 删除 python3.7 文件夹后 Pip 损坏

具有具体方法的Python抽象类

Python - 在先前将标准输出重定向到文件后将其重置为正常

python - 在 python 中,self 并不意味着实例?