Python中 is 和 ==的不同。

Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)

is比较的是id,==比较的是value。

在比较对象为:数值型(int)和字符串型的时候,is和==的结果相同,该是True的时候是True,该是False的时候是False。

当比较对象为其他类型时(包含float),==的结果是True,is的结果是False,或反过来。

特殊的是,当数字不在[-5,257)这个范围的时候,即使value相等,is的结果会是False。当字符串超过一个范围也有同样的现象。

事实上Python 为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。字符串也有类似缓冲池。

发布了46 篇原创文章 · 获赞 9 · 访问量 919

猜你喜欢

转载自blog.csdn.net/weixin_45850939/article/details/104440766
今日推荐