Python中比较运算符==和is有什么区别?Python之is与==的区别详解

对于初学Python的小伙伴来说,可能对is比较陌生,很多人在使用的时候都会误将它和== 的功能混为一谈,但其实is与==有本质上的区别,下面一起来看看它们之间的区别在哪吧 。

Python中比较运算符==和is有什么区别?Python之is与==的区别详解

文章插图
一、比较运算符==和is的区别
如果我们要对两个变量的值进行比较时,就会使用==去对两个变量的值进行判断是否相等,如果使用的是is的话,它判断的条件是两个变量所引用的对象是否是同一个对象,举个例子:
import timea = time.gmtime()b =  time.gmtime()print(a == b) # 输出Trueprint(a is b) # 输出False在上面的这个实例中,主要实现的功能是获取当前时间,其中a和b两个变量表示的都是当前系统的时间,所以a、b两个变量的时间值是相等,当我们使用==进行判断的时候,它最后返回的结果是true,但是由于a、b两个变量对对象的引用是不同的,在代码中,调用了gmtime()函数,它会使每次的返回的对象都不同,所以当我们使用is判断的时候,就会返回一个false 。
二、判断两个对象是否属于同一个对象
我们在操作之前,其实可以对对象做出判断,看看是否为同一个对象,可以使用Python中的一个全局函数id(),它可以查看对象所使用的内存地址是否相同,当两个对象存在同一个地址中时,就表示它们属于同一个对象中,下面看一个例子,使用id()函数去判断刚才那两个变量的对象,代码如下:
print(id(a))print(id(b))运行结果:
26802579784802680259784801通过运行结果中看到 a、b 两个变量所引用的对象的内存地址是不同的,这样通过 is来判断a、b两个变量自然也就输出False了 。
【Python中比较运算符==和is有什么区别?Python之is与==的区别详解】关于Python中比较运算符==和is有什么区别?Python之is与==的区别详解的文章就分享到这里了,希望大家仔细的阅读这篇文章之后能有所收获 。

    推荐阅读