[py]python中的==和is的区别

时间:2021-12-14 15:27:58

is比较id

id(a) == id(b) == id(c)
a is d #false

==比较值

a==b #true

[py]python中的==和is的区别

举个例子:a = 1
b = a
c = 1
d = 1.0
这里有3个对象abc,类型都是int。值都是1。id(a) # 35556792L
id(b) # 35556792L
id(c) # 35556792L
id(d) # 21253459L 本例中,毫无疑问,3兄弟abc都是引用的同一个地址35556792L下的内容。当你想判断a is b的时候,实际上比较的是id(a)==id(b)。结果为True。
当你写成a==b时候,实际上比较的是id(a)这个地址指向的值是不是和id(b)这个地址指向值一样。结果为True。
同理,如果你写的是a is d,那么结果就是False。而此时,a==d,结果却是True,因为值是一样的。