程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python判斷一個對象是否為None時應該用is而不是==

編輯:Python

None是單例對象,所有None的內存地址都相同,所以用is判斷是可以的。

如果用==判斷則可能有問題,因為==調用的__eq__()方法可能被重載,導致結果不符合預期:

class ReloadEq():
def __eq__(self, second_value):
return True
req = ReloadEq()
print(req == None)

輸出:

True

除此之外,is的時間效率也比==更高:

import timeit
print(timeit.timeit('None is None',number=10**7))
print(timeit.timeit('None == None',number=10**7))

輸出:

0.1993637309933547
0.2477139010006795

因為is只需要比較地址是否相同,而==需要比較值,而且可能涉及列表等需要遍歷的對象,需要比較每一個元素。

參考鏈接:https://blog.csdn.net/qq_34152244/article/details/100639985


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved