2014-12-04 37 views
1

如果我將變量設置爲False,則讀取爲等於零。有沒有什麼辦法可以進行一次檢查,看是否該變量,如果真正虛假或者如果它是數字0Python - 檢查數字0或假的任何方式

喜歡的東西:

Spam = False 

if Spam == False and not Spam == 0: 
    do something 

我越來越覺得這是不可能的;但我想仔細檢查。

備註:將來當變量可能爲零時,分配「None」而不是「False」會更好嗎?對於當前的代碼,我不想用try和excepts來重寫整個腳本,所以我會將False更改爲-1(對於這種情況不是一個可行的值)。但爲了將來的參考,我認爲None方法更加Pythonic?

幫助一如既往的讚賞,如果需要更多的細節,請問。

+1

什麼是Spam'的'目的它可以採用布爾值還是整數值? – chepner 2014-12-04 14:05:07

回答

6

您可以測試對象False單值,通過測試的身份:

if Spam is False: 

你真的應該重構你的代碼,不必依靠這裏的類型;是的,None是一個更好的false-y哨兵值。

一般情況下,使用None列爲定點意思是「無值設置」,或者如果你應該支持None爲好,使用唯一的對象定爲定點:

_sentinel = object() 

# ... 


if option is _sentinel: 
    # no value set 
+0

甚至,如果你覺得喜歡冒險,「如果不是垃圾郵件」。 – gcarvelli 2014-12-04 14:02:31

+0

@ killermonkey50這與OP正在嘗試做的事情相反,它區分'False'和'0'。 – chepner 2014-12-04 14:03:41

+0

@ killermonkey50:不,因爲'0'也是如此。 – 2014-12-04 14:03:49

相關問題