众所周知,我们的python中有很多的运算符,其中有的是经常使用的有的是不常使用的,其中比较常用的有is和 ==然后呢,他们其实有的时候是通用的,都是作为相等比值来使用的。但是有的时候,他们并不能划等号。
先上一下代码.
pythonis和==的区别a = 257
b = 257
print(a is b)
print(a == b)#out1: False#out2: True

我们可以看到,虽然都定义的是257,但是我们通过print显示的时候,会发现is是false,==是true。这是为什么呢?
我们首先要先了解一下python中对象包含的三个基本要素。分别是id(身份标识),type(对象类型),value(对象值)。
然后我们再看一下is和==的介绍。
is 比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址。==比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法。
== 是 python中标准操作符的比较操作符,它是用来比较判断两个对象的 value (值) 
通过==我们可以得到这两个对象的值是否相等。a = 'cheesezh'
b = 'cheesezh'
print(a == b)#True

is 也被称为同一性运算符,它是比较判断对象间的唯一身份标识,也就是 id 是否相同。
Python程序是由代码块构成的,其中代码块是作为程序最小的基本单位来执行,代码块是一个模块文件、一个函数体、一个类、交互式命令中的单行代码,Python出于对性能的考虑,但凡是不可变对象,在同一个代码块中的对象,只有是值相同的对象,就不会重复创建,而是直接引用已经存在的对象。
通过以上的内容,可以得到的结论是,同一个代码块中的不可变的对象,只要他们的值是相等的就不会重复创建新的对象。而是通过引用等方法来调用同一地址的值。小整数对象[-5,256]是全局解释器范围内可以被重复使用的对象,永远不会被回收。

不过今天其实主要是因为在搬宿舍,没什么时间来写文章了,所以发了篇之前的凑付一下。
通过以上的内容,不知道你是否还有疑惑,如果有什么不懂的可以在评论区留言,我会在看到的第一时间进行回复的。

最后修改:2021 年 04 月 20 日 08 : 33 AM
如果觉得我的文章对你有用,请随意赞赏