Je viens de rencontrer cet idiome dans un Python open-source, et je me suis étouffé avec mon verre.Est-ce idiot pythonic? (someBool et "True Result" ou "False Result")
Plutôt que:
if isUp:
return "Up"
else:
return "Down"
ou même:
return "Up" if isUp else "Down"
le code lu:
return isUp and "Up" or "Down"
Je peux voir ce résultat est le même, mais est-ce un idiome typique en Python? Si oui, est-ce un bidouillage de la performance qui court vite? Ou est-ce juste une seule fois qui a besoin d'un examen du code?
La syntaxe alternative a une différence avec l'opérateur et/ou la méthode ou l'opérateur ternaire - les deux valeurs sont toujours évaluées. Ce n'est pas un gros problème si ce ne sont que des variables, mais s'il y a des appels de fonction (en particulier avec des effets secondaires), cela fera une différence. – Brian