2010-11-05 37 views

Respuesta

71

PEP 308 añade un operador ternario:

foo = "True" if test else "False" 

Se ha implementado desde Python 2.5

+0

Wow. Me ganaste por 12 segundos y tienes carácter por personaje la misma respuesta que hice. –

+0

Gracias, aceptaré esta respuesta tan pronto como SO lo permita :) – cynicaljoy

-1

Éste parece un poco más como ternaria originales:

foo=a and b or c 
+0

'f = ao b o c' funciona igual que en javascript (devuelve el primer valor de verdad). – h4k1m

+4

-1 Cuidado, hay un caso donde esto no funciona: si la condición 'a' es verdadera y' b' es cualquier valor falso, como False, 0, None, [], {} y así sucesivamente, entonces el resultado es 'c', que es incorrecto (debe ser' b'). Por ejemplo, (Verdadero y [] o [1,2,3]) es igual a [1,2,3], mientras que ([] si es verdadero más [1, 2, 3]) es igual a [], como debería ser. Recomiendo adherirme al operador ternario oficial. – MiniQuark

Cuestiones relacionadas