我發現這種表達多次在Python程序:這個Python表達式有意義嗎?
if variable is not None:
dothings(variable)
我覺得奇怪,我,我認爲它有不超過感:
if variable:
dothings(variable)
也許我不我們知道Python足夠了,表達式在某處被解釋了嗎?
我發現這種表達多次在Python程序:這個Python表達式有意義嗎?
if variable is not None:
dothings(variable)
我覺得奇怪,我,我認爲它有不超過感:
if variable:
dothings(variable)
也許我不我們知道Python足夠了,表達式在某處被解釋了嗎?
variable
可能是0
,或False
或[]
或()
;換句話說是'虛假',然後if
聲明將被跳過。
請參閱Truth testing瞭解有關布爾上下文中被視爲錯誤的更多詳細信息。
總之,測試如果variable is not None
允許variable
是別的,包括原本在布爾環境被認爲是假值。
部分數值爲falsy,但不是None
。您可能仍然想要dothings()
這些值。
Here are the things that are falsy in Python 2.(您可以在URL爲「3」改變「2」得到的值Python 3中,但它並沒有太大變化。)
例如
i = 0
if i is not None:
print i # prints i
if i:
print i # prints nothing
在google語音python實現中,我也遇到了這個問題,它們的使用是在函數調用期間使用的。參數默認爲「無」,然後當函數被調用時,他們可以檢查值是否被更改或默認值。 I.E.
def login (user=None, password=None)
if user is None:
user = input('Please enter your username');
...
return <something>;
通過
login()
OR
login(user='cool_dude')
OR
你希望用戶名/密碼的任意組合調用。
此外,邏輯的「更新」意味着變量== true或false。這對於所有情況都是不正確的(它可能在某些情況下有效,但是我把它們扔掉了,因爲這不是一般情況)。通過使用「NONE」邏輯測試的是變量是否包含除NONE之外的任何內容。類似於我上面所說的,所有的「登錄功能」在做的是確定用戶是否通過了任何事情,而不是該值是否有效,是否等。
因此,....「A'不是' B「不同於」A不是B「,Python應用前者。不是嗎? – Zhen
「不是」是「is」的倒數,是的。請參閱http://docs.python.org/2/reference/expressions.html#not-in。你也可以說'不是A是B'。 –