博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的is和==的区别
阅读量:6964 次
发布时间:2019-06-27

本文共 612 字,大约阅读时间需要 2 分钟。

hot3.png

首先来看看例子:

(1)>>> a = 'hello world'>>> b = 'hello world'>>> print(id(a),id(b))2037326180976 2037326180784>>> print(a is b)False>>> print(a == b)True(2)>>> a = 'hello world'>>> b = a>>> print(id(a),id(b))2037326181168 2037326181168>>> print(a == b)True>>> print(a is b)True

上述例子(1)中的a、b分别指向的是不同的内存空间,此时a is b返回False,a == b返回True。但例(2)中当a和b指向相同内存空间时a is b返回的是True,a == b返回仍是True。没错,根据官方文档中的说法,is表示的是对象标识符(object identity),而==用来检查值相等(equality)。换句话说,is就是用来判断两个对象是否在本质上是一个对象,即占用的是否是相同的内存空间。所以当我们在判断a is b时其实是判断id(a) == id(b),而检查a == b时其实是调用了__eq__()方法,相当于a.__ eq __(b)。

转载于:https://my.oschina.net/u/3723649/blog/1814901

你可能感兴趣的文章
js追加元素,以及元素位置
查看>>
C 指针
查看>>
SI24R2F自带温湿度传感器的2.4g超低功耗蓝牙芯片 完全替代SI24R2E
查看>>
SSM-SpringMVC-23:SpringMVC中初探异常解析器
查看>>
构建之法阅读笔记05
查看>>
SPI
查看>>
字节和字符
查看>>
windows组策略屏蔽
查看>>
html中的相对路径问题
查看>>
Git合并分支或者冲突
查看>>
struts json ajax整理
查看>>
一步一步写平衡二叉树(AVL树)
查看>>
deque与vector的主要区别
查看>>
Ubuntu安装
查看>>
POI简易帮助文档--给Excel设置样式
查看>>
MJRefresh使用
查看>>
FPGA成神之路 ----- 序
查看>>
自学java 第十一章持有对象
查看>>
HDU5781 ATM Mechine(DP 期望)
查看>>
在go中使用json作为主要的配置格式
查看>>