python中 is 與 ==的區別

在python中,常常遇到判斷兩個變量是否相同的狀況,python提供了兩種方式python

  is:對象

    a is b 判斷a和b的id是否相同。內存

  ==:變量

    a == b 判斷a和b的value是否相等引用

python在存儲對象時,存儲三個東西:id、value、type,即地址、值和類型。數字

is比較兩個變量的id是否相同,便是否引用同一地址。

==比較兩個變量的值是否相等,即便不在同一地址也可能相等。

is的比較要比==速度快。

這是我在遇到if a is not None: 時想到的,爲何對於None不使用==?

我纔多是None和數字同樣常駐內存,是不可變類型,因此只需判斷一個變量的id是否指向這裏就能夠了,速度還快。

 

以上

相關文章
相關標籤/搜索