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