在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是否指向這裏就能夠了,速度還快。
以上