Python id(obj), ==, is 三者之間的區別

不多說,直接上代碼,看看三者的區別吧。

代碼:

# 例子
a = [1, 2, 3]
b=a;
print(a)
print(b)
print(a is b)
print(b is a)
print(b==a)
print(id(a)==id(b))
print(a[:])
b=a[:]
print(b==a)
print(a is b)

查看一下輸出結果:

[1, 2, 3]
[1, 2, 3]
True
True
True
True
[1, 2, 3]
True
False

通過結果,比對一下三者之間的區別。

比較id(obj), ==, is

符 號 描述 實例
id 獲取的是對象在內存的地址 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False
is is 和is not 都是Python身份運算符,身份運算符用於比較兩個對象的存儲單元。is 是判斷兩個標識符是不是引用自一個對象。 x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False, 即判斷2個變量是否指向同一個對象。
== ==是Python比較運算符,用於比對2個變量的具體值是否相等 即通過地址(id)指向的內存中的具體值 ,比如a=10,b=20,(a == b) 返回 False。

注意:

每一個類型只有一個類型對象。例如 type(100) ==type(0) ==type(2340)

總結:

  • 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等。
  • id(obj)用於獲取對象內存地址是否是同一個。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章