面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致。本文我们来看一下这两者的区别。

我们先来看几个例子:

上面的输出结果中为什么有的 is 和 == 的结果相同,有的不相同呢?我们来看下官方文档中对于 is 和 == 的解释。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

官方文档中说 is 表示的是对象标示符(object identity),而 == 表示的是相等(equality)。is 的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。

我们在检查 a is b 的时候,其实相当于检查 id(a) == id(b)。而检查 a == b 的时候,实际是调用了对象 a 的 eq 方法,a == b 相当于 a.eq(b)。

一般情况下,如果 a is b 返回True的话,即 a 和 b 指向同一块内存地址的话,a == b 也返回True,即 a 和 b 的值也相等。

好了,看明白上面的解释后,我们来看下前面的几个例子

打印出 id(a) 和 id(b) 后就很清楚了。只要 a 和 b 的值相等,a == b 就会返回True,而只有 id(a) 和 id(b) 相等时,a is b 才返回 True。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

这里还有一个问题,为什么 a 和 b 都是 “hello” 的时候,a is b 返回True,而 a 和 b都是 “hello world” 的时候,a is b 返回False呢?

这是因为前一种情况下Python的字符串驻留机制起了作用。对于较小的字符串,为了提高系统性能Python会保留其值的一个副本,当创建新的字符串的时候直接指向该副本即可。所以 “hello” 在内存中只有一个副本,a 和 b 的 id 值相同,而 “hello world” 是长字符串,不驻留内存,Python中各自创建了对象来表示 a 和 b,所以他们的值相同但 id 值不同。(这段解释有误,非常感谢冒泡同学指正。冒泡同学指出:intern机制和字符串长短无关,在交互模式下,每行字符串字面量都会申请一个新字符串,但是只含大小写字母、数字和下划线的会被intern,也就是维护了一张dict来使得这些字符串全局唯一)

总结一下,is 是检查两个对象是否指向同一块内存空间,而 == 是检查他们的值是否相等。可以看出,is 是比 == 更严格的检查,is 返回True表明这两个对象指向同一块内存,值也一定相同。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

看到这里,大家是不是搞懂了 is 和 == 的区别呢?

那我们深入一步来思考一下下面这个问题:

Python里和None比较时,为什么是 is None 而不是 == None 呢?

欢迎回答在评论区~

全栈工程师对Python面试中is和==的区别做出解释!看完真的学到了相关推荐

  1. python全栈面试题_全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!...

    面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一下这两者的区别. 我们先来看几个例子: a = "hel ...

  2. python全栈工程师薪资-Python全栈工程师为何这么火薪资这么高看了才知道

    (文章转载于网络) 我每天听见全栈工程师这个成语. 这么很多小伙伴还是不明所以,什么是全栈工程师?咋回事全栈开发用Python?Python Web全栈开发到底有多高薪?今天就来为大家解读一下. 啥是 ...

  3. 月薪40K起,什么是Python全栈工程师?全栈工程师薪资为何这么高?

    我们经常听到全栈工程师这个词语.那么很多小伙伴还是不明所以,什么是全栈工程师?为什么全栈开发用Python?Python web全栈开发到底有多高薪?今天就来为大家解读一下. 什么是Python we ...

  4. 什么是全栈工程师,为什么全栈开发用Python,Python web全栈开发到底有多高薪?

    我们经常听到全栈工程师这个词语.那么很多小伙伴还是不明所以,什么是全栈工程师?为什么全栈开发用Python?Python web全栈开发到底有多高薪? 一.什么是Python web全栈工程师? 全栈 ...

  5. python全栈工程师薪水_Python工程师薪资待遇是多少?老男孩Python周末班

    从目前市场上的发展情况来说,Python是一门非常流行的编程语言,随着近几年的发展,Python这门语言变得更加流行了,也越来越火了,根据数据显示,Python发展已经翻了好几倍,是人工智能的头牌语言 ...

  6. python全栈开发要学些什么_python全栈工程师学些什么

    全栈工程师是指掌握python各项技术,并能独立完成产品的人. python全栈工程师使用python相关工具和知识完成从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的 ...

  7. APP全栈工程师修炼之路(一)

    第一章 全栈导论 1.1 概述 全栈工程师,也叫全端工程师,英文名Full Stack developer.是指掌握多种技能,并能利用各种技能独立完成产品的人.全栈工程师按照产品的类型不同又分为:We ...

  8. 全栈工程师?并没有什么卵用。每个人都应该去创业,不为别的,就为了健全你的人格(转)...

    困境: 全栈工程师在实际工作中,意义并不大. 从员工角度说,工作中几乎不存在需要你全栈能力的项目或岗位,项目本身的技术跨度就不会特别大,人员配备一般也会比较健全,你的技术力通常难以得到体现,虽然你也可 ...

  9. 我们到底该转行Web全栈工程师吗?

    全栈工程师已经成为发展中的职业香馍馍.几乎整个互联网行业都缺全栈工程师,无论是刚起步的创业公司,还是上市公司乃至巨头,空缺一样存在.优秀的全栈工程师简直比大熊猫还稀少.所以我们应该转行做一个web全栈 ...

最新文章

  1. android中Invalidate和postInvalidate的区别
  2. docker rancher搭建
  3. 交换与路由技术课程期末上机测试题目一
  4. vue商城项目开发:封装banner组件、组件参数传递
  5. C# 系统应用之透明罩MyOpaqueLayer实现360界面阴影效果
  6. pip临时使用国内下载源,提高下载的速度
  7. Transformer又又来了,生成配有音乐的丝滑3D舞蹈,开放最大规模数据集AIST++
  8. T-SQL的进阶:超越基本级别3:构建相关子查询——701小组
  9. Windows下安装Semantic-Segmentation-Editor标注软件
  10. C# 基于 adb 控制安卓
  11. 测绘——利用CASS及数据库批量导出/修改/更新地籍信息
  12. 电脑蓝屏代码查询软件
  13. 解决 大漠测试工具 “你的系统没有发现大漠插件”问题
  14. 基于vue+html的Web网页音乐播放器设计
  15. PLC扩展模块总线连接方式?IO扩展模块和主模块。西门子用到的总线中的一种背板总线简单介绍扩展模块中也有控制芯片(CPU)(或者类似SPI协议芯片),除了扩展模块(SM)还有扩展板(SB)
  16. 计算机毕业设计工作周记,电子及计算机毕业设计周记-20210628114255.docx-原创力文档...
  17. 计算机占用空间怎么算,电脑系统我的电脑的C盘空间占用了19G还剩余8G,请问这算是正常 爱问知识人...
  18. 1016 Phone Bills (25分)
  19. CAD删不掉的顽固图层及简单优化
  20. 光晕ce服务器位置,光晕ce地图

热门文章

  1. 查看PLC IP 端口_详解S7-1500的以太网通信数据类型:TCON_IP_v4
  2. feed流和瀑布流_基础知识讲解:什么是feed流?(图文)
  3. python snmp采集交换机信息_交换机和大机技术术语(大全)
  4. ssd内部是多个flash一起操作_广告设计中Flash图形动画的应用
  5. 大数据人工智能物联网论文_物联网学报“大数据”相关论文汇总
  6. python输入姓名 性别身高_python简单实现学生管理系统
  7. python中的zip是什么意思_python中zip是什么函数
  8. mysql5.6.39编译安装_源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!...
  9. python爬取豆瓣影评生成词云的课程设计报告_简单爬取《小丑》电影豆瓣短评生成词云...
  10. jparepository查询所有_jparepository 怎样自定义查询