我有一个方法可以依次调用其他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。我在这里错过了一个简单,优雅的解决方案吗?顺便说一句,在这种情况下,这四种检查方法可能很昂贵,因此我不想多次调用它们。
x and return x
比if x: return x
呢?后者更具可读性,因此可以维护。您不必太担心字符或行的数量;可读性很重要。无论如何,它们都是完全相同数量的非空白字符,如果确实需要,它们if x: return x
只能在一行上工作。
x
(而不是bool(x)
),按目前的情况,我认为可以安全地假设OP的函数可以返回任何东西,而他想要第一个真实的东西。