“is” 和 “==” 的区别-Python

is比较的是对象,==比较的是值。

Python中的对象包含三要素:id、type、value。其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。

  • is 判断的是a对象是否就是b对象,是通过id来判断的。
  • == 判断的是a对象的值是否和b对象的值相等,是通过value来判断的。

"is" 和 "==" 的区别-Python

a,b指向不同的对象,但是值相等。

"is" 和 "==" 的区别-Python

a,b指向相同的对象,值也相同。


如果你只测试了整数,那你很容易搞晕。因为Python为了性能,会重用小整数,例如:

"is" 和 "==" 的区别-Python

对比大整数:

"is" 和 "==" 的区别-Python

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注