优草派 > Python

Python等等运算符与is关键字区别在哪?Python运算符is和==差异是什么

罗西汉         优草派

在python之中如果要判断两个对象是否相等的话能够使用==运算符和is关键字,而很多人只会使用但是却不知道该如何区分它们。那么下面这篇文章就会来讲解一下这两个运算符之间的差异和区别是什么,要深入了解python的小伙伴可得仔细阅读了。

Python等等运算符与is关键字区别在哪?Python运算符is和==差异是什么

一、实际作用

等等两个等号是逻辑运算符,而is则是身份运算符,它们两个从作用上来说就是有了差异。一个是用来判断两个对象之间的值是否相等,一个则是判断两个对象是否相同。如果有学习过Java和C#的话就很好理解,因为一个是根据值判断,一个是根据引用来判断。

二、代码实例

从实际上的代码来看还是更加好讲解的,那么现在给定一个列表对象a,然后使用a给b赋值。那么这个时候a和b两个对象无论是值还是引用类型都是相等和相同的,代码示例如下:

a = [1, 2, 3]
b = a
b is a
True
b == a
True

这是因为a的值赋予给b之后,它们两个自然是相同的。但是is引用判断还是相同的原因就涉及到python对象缓存机制了,该机制的作用就是当一个内存较小的对象定义好之后会放在缓存区之中,如果这个对象赋值给了另外一个对象,那么同时也会将内存空间地址也赋值过去。也就是说对象a和b是从同一内存空间中取数据的,一个更改了,另外一个也会相应的发生变化。

那么来看另外一个示例,使用a列表切片的方式将所有元素取出来赋值给对象b。这个时候虽然值相同,但是它们引用对象不同了,is身份判断的结果为False。这是因为切片操作是重新开辟一个内存空间来保存数据,所以它们的引用对象不同了,详细代码示例如下所示:

b = a[:]
b is a
False
b == a
True

以上就是关于“Python等等运算符与is关键字区别在哪?Python运算符is和==差异是什么”的全部内容了,希望对你有所帮助。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
广告
? x
广告
? x
广告
? x
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备 19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024