首页 > 技术文章 > python中 is 与 ==的区别

lihao-like 2018-08-14 17:40 原文

在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是否指向这里就可以了,速度还快。

 

以上

推荐阅读