2013-06-06 66 views
-1

這是如何工作的?文檔在哪裏?「或」如何在變量賦值中工作?

a = 0 or "" or None or 2 
print(a) 

a = 2 or "" or None or 0 
print(a) 
+1

對解釋器進行一些實驗,您可以快速確定它的工作原理。 – ChrisP

+1

在這兩種情況下,它都會返回遇到並返回的第一個「非錯誤」值。在第一種情況下,0,空字符串和None都基本上等於false,所以2是答案。在第二種情況下,它遇到2,它不等於false,並在檢查剩餘的值之前返回。非常簡單。文檔在這裏:http://docs.python.org/release/2.5.2/lib/boolean.html –

回答

1

or運營商作爲一個函數的想:

or(x, y): 
    if x: 
     return x 
    else: 
     return y 

然後a = 0 or ""將是一樣a = or(0, "")。由於0的計算結果爲False,因此將返回""。現在

a = 0 or "" or None or 2基本上是

a = or(or(or(0, ""), None) 2) 

最裏面or將返回"",下一個會意識到""仍然計算結果爲假,返回None,和最外層會終於迴歸2