我有一个方法可以依次调用其他 4 个方法来检查特定条件,并在返回 Truthy 时立即返回(不检查以下方法)。
def check_all_conditions():
x = check_size()
if x:
return x
x = check_color()
if x:
return x
x = check_tone()
if x:
return x
x = check_flavor()
if x:
return x
return None
这似乎是很多行李代码。而不是每个 2 行 if 语句,我宁愿做这样的事情:
x and return x
但那是无效的 Python。我在这里缺少一个简单、优雅的解决方案吗?顺便说一句,在这种情况下,这四种检查方法可能很昂贵,所以我不想多次调用它们。
原文由 Bernard 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以使用一个循环:
这具有额外的优势,您现在可以使条件的数量可变。
您可以使用
map()
+filter()
(Python 3 版本,使用future_builtins
版本 中的第一个这样的匹配值):但如果这更具可读性是值得商榷的。
另一种选择是使用生成器表达式: