Eu tenho um método que chama 4 outros métodos em sequência para verificar condições específicas e retorna imediatamente (não verificando os seguintes) sempre que alguém retorna algo 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
Parece muito código de bagagem. Em vez de cada declaração if de 2 linhas, prefiro fazer algo como:
x and return x
Mas isso é Python inválido. Estou perdendo uma solução simples e elegante aqui? Aliás, nessa situação, esses quatro métodos de verificação podem ser caros, então não quero chamá-los várias vezes.
x and return x
é melhor do que if x: return x
? O último é muito mais legível e, portanto, sustentável. Você não deve se preocupar muito com o número de caracteres ou linhas; legibilidade conta. Eles são exatamente o mesmo número de caracteres que não são espaços em branco e, se você realmente precisar, if x: return x
funcionará bem em apenas uma linha.
x
(ao contrário de bool(x)
) assim como está, acho que é seguro assumir que as funções do OP podem retornar qualquer coisa, e ele quer o primeiro qualquer coisa que seja verdadeira.