Me encontré con este modismo en un Python de código abierto, y me atraganté con mi bebida.¿Es este idioma pitónico? (someBool y "True Result" o "False Result")
En lugar de:
if isUp:
return "Up"
else:
return "Down"
o incluso:
return "Up" if isUp else "Down"
el código lee:
return isUp and "Up" or "Down"
puedo ver que este es el mismo resultado, pero esto es un lenguaje típico en Python? Si es así, ¿es algún truco de rendimiento que corre rápido? ¿O es solo una vez que necesita una revisión del código?
La sintaxis alternativa tiene una diferencia con el/y el método o el operador ternario: ambos valores siempre se evalúan. No es gran cosa si solo son variables, pero si hay llamadas a funciones (especialmente con efectos secundarios) allí, hará la diferencia. – Brian