欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python中is與==判斷的區別

系統 1705 0

在 Python 中,比較兩個對象(變量)是否相等,可以用 “is” 和 “==” 操作,但它倆有什么區別?什么時候用 “is”,什么時候用 “==” ?在面試時,發現不少候選人很難把這兩者完全說清楚,因此在這篇文章中,「Python之禪」將對二者進行深入淺出的對比介紹。

先舉個例子

小黃最近手頭非常寬裕,花重金購買了一輛 P90D 特斯拉,我們暫且給這車取名叫 "小P" ,這輛車和隔壁老王家的車(車名叫 "小 王")是一模一樣的,無論是型號、外表還是價格都一樣,是同批次生產的。這里我們可以說 "小P" 和"小王"是兩輛一模一樣的、相等的( euqal ),但本質上這是兩個不同的對象。有一天小君給他的愛車又取了一個網名叫 "愛駒",當我們說 "小P" 的時候其實就是在討論 "愛駒",因為本質上兩個名字指的是同一個對象,這里我們把 "小P" 和 "愛駒" 稱為完全相等的( identical )。

在 Python 中,”==” 和 “is” 的區別可類比這個例子 ,前者是相等性比較,比較的是兩個對象中的值是否相等,后者是一致性比較,比較的是兩個對象的內存空間地址是否相同。

?顯然,如果內存地址相同,那么他們的值肯定也是一樣的,因此,如果 “is” 返回 True,那么 “==” 一定也返回 True,反之卻不成立。

talk is cheap, show me the code

先創建一個列表對象,然后給它指定一個名字 a,再定義另外一個變量 b,讓它指向同一個對象。

            
>>> a = [1, 2, 3]
>>> b = a

          

a 和 b 打印的值都是相等的,因為這兩個變量指向的是同一個對象,就好比給一輛車起了兩個不同的名字。

            
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

          

理所當然, is 和 == 都返回 True。

            
>>> a == b
True
>>> a is b
True

          

創建一個新的對象,盡管值是一樣的,但是他們本質上是兩個不同的對象,處在兩個不同的內存空間,因此 "is" 返回的是 False。

            
>>> c = [1,2,3]
>>> a is c
False

          

有且當僅比較的兩個變量指向同一個對象時 "is" 才返回 True,而 "==" 最終取決于對象的 __eq__() 方法,本質上兩個變量進行 "==" 比較操作調用的是對象的 __eq__() 方法。例如:

            
>>> class Foo(object):
    def __eq__(self, other):
      return True

>>> f = Foo()
>>> f == 1
True
>>> f == None
True
>>> f is None
False


          

因為自定義類 Foo 的 eq 方法恒返回 True,因此它與任何對象進行 "==" 都是返回 True。而它與 None 是兩個不同的對象,因此 'is' 操作返回的是 False。

最后請大家思考這段代碼,為什么同樣的操作會有不同的結果

            
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = 123
>>> b = 123
>>> a is b
True

          

總結:

如果你要比較兩個值是否相同就用==,如果比較是否是同一個對象就用is.

其實python中的is比較的對象很像C語言中的指針,只有地址相同的指針才是同一個指針.


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久91| 看免费大片 | 中文字幕乱码一区二区三区 | 亚洲综合在线一区 | 97国产精品最新 | 国产日韩欧美视频在线观看 | 欧美 日韩 | 九九福利影院 | 婷婷激情综合色五月久久竹菊影视 | 亚洲www啪成人一区二区麻豆 | 玖玖精品视频在线观看 | 免费国产视频在线观看 | 精品国产一区二区三区四 | 亚洲精品国精品久久99热 | 久草福利在线视频 | 久久www免费人成精品 | 国产精品久久福利新婚之夜 | 天堂中文资源在线观看 | 婷婷精品国产亚洲AV在线观看 | 国产成人综合久久 | 国产亚洲精品2021自在线 | 国产中文字幕在线 | 国产福利不卡视频在免费 | 一级午夜a毛片免费视频 | 国产一区在线看 | 台湾三级无遮挡在线播放 | 国产日韩一区二区三免费高清 | 亚洲一区二区三区精品视频 | 日韩一区二区在线视频 | 久久一本日韩精品中文字幕屁孩 | 国产精品国产三级国产aⅴ原创 | 日韩免费视频观看 | 欧美黑人xxxx | 久草福利在线视频 | A片太大太长太深好爽A片视频 | 亚洲精品自产拍在线观看app | 精品欧美成人高清视频在线观看 | 日产一一到六区麻豆 | 精品人妻无码一区二区三区手机板 | 又爽又黄axxx片免费观看 | 久福利|