【python】is和==的区别

is:以 id(内存地址)为基础。是否指向同一个对象。
==:以值为基础

>>> p=3
>>> q=3
>>> p is q
True

>>> p=3.
>>> q=3.
>>> p is q
False
>>> c = 257

>>> def foo():
...     a = 257
...     b = 257
...     print a is b
...     print a is c
...
>>> foo()
True
False

1、小整数对象[-5,256]是全局解释器范围内被重复使用,永远不会被GC回收。
2、同一个代码块中的不可变对象,只要值是相等的就不会重复创建新的对象。

[部分来源](https://www.cnblogs.com/lilz/p/9410319.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。