J'ai une méthode qui appelle 4 autres méthodes dans l'ordre pour vérifier les conditions spécifiques et renvoie immédiatement (sans vérifier les suivantes) chaque fois que l'on retourne quelque chose de vrai.
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
Cela ressemble à beaucoup de code de bagages. Au lieu de chaque instruction if sur 2 lignes, je préfère faire quelque chose comme:
x and return x
Mais ce n'est pas Python invalide. Me manque-t-il une solution simple et élégante ici? Par ailleurs, dans cette situation, ces quatre méthodes de vérification peuvent être coûteuses, donc je ne veux pas les appeler plusieurs fois.
x and return x
c'est mieux que if x: return x
? Ce dernier est beaucoup plus lisible et donc maintenable. Vous ne devriez pas trop vous soucier du nombre de caractères ou de lignes; la lisibilité compte. Ce sont exactement le même nombre de caractères non blancs de toute façon, et si vous le devez vraiment, if x: return x
cela fonctionnera bien sur une seule ligne.
x
(par opposition à bool(x)
) donc tel qu'il est, je pense qu'il est sûr de supposer que les fonctions de OP peuvent retourner n'importe quoi, et il veut le premier tout ce qui est véridique.