Python中==和is的區別

前言

本文主要內容是 Python 中運算符 ==is 的區別。

進入正文前,首先簡單介紹一下 Python 中對象的 3 個基本要素,id(身份標識)、type(數據類型)和value(值)。

正文

== 是python標準操作符中的比較操作符,用來比較判斷兩個對象的value(值)是否相等,例如下面兩個字符串間的比較:

>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> a == b
True

is 也被叫做同一性運算符,這個運算符比較判斷的是對象間的唯一身份標識,也就是id是否相同。

>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False
>>>
>>> print id(x)
3075326572
>>> print id(y)
3075326572
>>> print id(z)
3075328140

可以明顯的看到前 3 個比較都是 True, 最後一個是 False。

使用 id() 方法查看 x, y, z 的對象ID就明白了。

我在這裏使用的是數組,其實,當它們是 tuple, list, dict 或者 set 時也一樣。

不過,當類型是 int 或者 string 時,它們的對象ID都會一樣,

>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = "asd"
>>> b = "asd"
>>> a is b
True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章