回答
答案解釋here。
引述:
類是自由地實現 比較它選擇的任何方式,它 可以選擇讓對 無對比意味着什麼(這實際上 是有道理的,如果有人告訴你到 執行None對象從 從頭開始,你會怎麼得到它 比較自己?)。
實際上,自定義比較運算符很少出現,沒有太大的區別。但是您應該使用is None
作爲一般規則。
這是一個有趣的(和簡短)閱讀。還有一些有用的信息進入'is' v。'=='。 – 2010-07-15 16:59:58
另外,'None'比'== None'快一點(〜50%):) – 2010-07-16 01:08:35
@NasBanov你有鏈接到你讀的地方嗎? – myusuf3 2012-01-25 20:12:02
在這種情況下,它們是相同的。 None
是一個單身物件(只存在一個None
)。
is
檢查對象是否是同一個對象,而==只是檢查它們是否相同。
例如:
p = [1]
q = [1]
p is q # False because they are not the same actual object
p == q # True because they are equivalent
但由於只有一個None
,他們永遠是相同的,並且is
將返回true。
p = None
q = None
p is q # True because they are both pointing to the same "None"
這個答案不正確,正如Ben Hoffstein在http://stackoverflow.com/questions/3257919/is-none-vs-none/3257957#3257957下的回答所解釋的那樣。即使「x」不是「None」,「x == None」也可以評估爲「True」,但是某些類的實例具有自己的自定義相等運算符。 – max 2010-11-16 03:00:04
class Foo:
def __eq__(self,other):
return True
foo=Foo()
print(foo==None)
# True
print(foo is None)
# False
如果使用numpy的,
if np.zeros(3)==None: pass
會給時numpy的做的elementwise比較
- 1. BorderStyle = NotSet和BorderStyle = None之間的區別
- 2. jQuery的hide()和.css('display','none')之間的區別?
- 3. Is List :: MoreUtils :: none buggy?
- 4. 'await future'和'await asyncio.wait_for(future,None)'之間有區別嗎?
- 5. Numpy.array(None)返回None但不是None
- 6. 爲什麼class .__ weakref__不是None,而instance .__ weakref__是None?
- 7. ++和:haskell之間的區別是什麼?
- 8. [undefined]和[,]之間的區別是什麼?
- 9. $(())和expr之間的區別是什麼?
- 10. $(...)和`...`之間的區別是什麼
- 11. Python:`is`和`==`之間的區別?
- 12. MVC和MVVM之間的區別和相似之處是什麼?
- 13. 區別:%% a和%variable%變量之間的區別是什麼?
- 14. 爲什麼它在輸出中顯示None None
- 15. [EmailPasswordAuthProvider,EmailAuthProvider]之間的區別是什麼
- 16. 爲什麼encrypt()返回None?
- 17. 爲什麼magic.from_buffer返回None?
- 18. matlab - 什麼是null/None/nil/NULL等值?
- 19. 在Python中None = e是什麼意思?
- 20. 這是爲什麼None類型?
- 21. 爲什麼在'spam'中列表(print(x.upper(),end =''))得到一個[None,None,None,None]列表?
- 22. TVF/UDF之間的區別是什麼
- 23. {$ var}和$ var之間有什麼區別?
- 24. :: after和after之間有什麼區別?
- 25. arm gcc toolchain作爲arm-elf還是arm-none-eabi,有什麼區別?
- 26. 爲什麼我得到None的值?
- 27. 爲什麼我的tf_gradients返回None?
- 28. 爲什麼我的條件返回「none?」
- 29. False or None vs. None或False
- 30. dpm()和dsm()之間有什麼區別?
看你錯誤[有間'=='和'is' Python中的區別嗎?] (http://stackoverflow.com/questions/132988/is-there-a-difference-between-and-is-in-python/134659#134659) – 2010-07-15 16:58:50
@ myusuf3:你可能想考慮改變接受的答案正確的一個。 – max 2012-01-24 19:12:18