2010-11-05 29 views

Odpowiedz

71

PEP 308 dodaje potrójny operatora:

foo = "True" if test else "False" 

Jest realizowany od Python 2.5

+0

Wow. Pokonałeś mnie o 12 sekund i otrzymałeś znak postaci tak samo jak ja. –

+0

Dzięki, przyjmuję tę odpowiedź, gdy tylko SO to pozwoli :) – cynicaljoy

-1

To wygląda nieco bardziej przypomina oryginalnego trójskładnikowego:

foo=a and b or c 
+0

'f = a lub b lub c' działa tak samo jak w javascript (zwraca pierwszą wartość truey). – h4k1m

+4

-1 Uwaga: istnieje przypadek, w którym to nie działa: jeśli warunek "a" ma wartość True, a "b" to dowolna wartość false, na przykład Fałsz, 0, Brak, [], {} i tak dalej, to wynikiem jest "c", które jest błędne (powinno to być 'b'). Na przykład, (True i [] lub [1,2,3]) jest równe [1,2,3], natomiast ([] jeśli True else [1, 2, 3]) jest równe [], jak powinno być. Polecam trzymać się oficjalnego operatora trójskładnikowego. – MiniQuark