233倔强不秃 发表于 2020-3-18 21:35:51

is 和 == 的区别

本帖最后由 233倔强不秃 于 2020-3-18 21:39 编辑

在python中万物即对象,所以is比较的是id值相同不相同,而==仅比较值。

id是什么?

id() 函数返回对象的唯一标识符,标识符是一个整数。id(),返回object的内存地址

对于值大小在-5~256之间的变量,python因为有内存池缓存机制,会对该值分配内存,而不是变量,所以只要是该值的变量都指向同一个内存,即id相同。



例如:
>>> a = 6
>>> b = 6

>>> a == b
True
>>> a is b
True

>>> id(a)
1794099024
>>> id(b)
1794099024
>>>

>>> a = 12412412
>>> b = 12412412

>>> a == b
True
>>> a is b
False

>>> id(a)
1934207414384
>>> id(b)
1934207414416
>>>
>>>
页: [1]
查看完整版本: is 和 == 的区别