Po prostu natknąłem się na ten idiom w jakimś Pythonie z otwartym kodem źródłowym, i zakrztusiłem się drinkiem.Czy ten idiom jest pythonic? (someBool i "True Result" lub "False Result")
Zamiast:
if isUp:
return "Up"
else:
return "Down"
lub nawet:
return "Up" if isUp else "Down"
kod przeczytać:
return isUp and "Up" or "Down"
widzę to ten sam wynik, ale jest to typowa idiom w języku Python? Jeśli tak, to czy jakiś hack wydajności działa szybko? Czy jest to jednorazowy egzemplarz, który wymaga przeglądu kodu?
Alternatywna składnia ma jedną różnicę w stosunku do metody i/lub operatora trójskładnikowego - obie wartości są zawsze oceniane. Nie jest to wielka sprawa, jeśli są to tylko zmienne, ale jeśli są tam wywołania funkcji (szczególnie z efektami ubocznymi), będzie to miało znaczenie. – Brian