我剛剛在一些開放源碼的Python中遇到了這個習慣用法,我my嚥了我的飲料。這是成語pythonic嗎? (someBool和「True Result」或「False Result」)
不是:
if isUp:
return "Up"
else:
return "Down"
甚至:
return "Up" if isUp else "Down"
代碼閱讀:
return isUp and "Up" or "Down"
我可以看到這是同樣的結果,但是這是一個典型的成語在Python中?如果是這樣,是否有一些性能快速跑?或者它只是一次需要代碼審查?
另一種語法與和/或方法或三元運算符有一個不同之處 - 兩個值都始終進行評估。如果它們只是變量就沒有什麼大不了的,但如果存在函數調用(特別是帶有副作用),它將會產生變化。 – Brian 2008-12-06 11:00:27