Python有两个用于相等比较的运算符,“is”和“==”(等于)。在这篇文章中,我将带你们了解Python中“is”和“==”的区别,并通过几个简单地例子说明应该在什么时候使用它们,我们先来看一个情景: 当我还是一个孩子的时候,我们的邻居家有两只双胞胎猫。 这两只猫看起来看起来完全一样 - 同样的木炭毛,同样敏锐的绿眼睛。撇开一些个性怪癖,单从它们的外表根本无法区分它们。但他们确确实实是两只不同的猫,两个不同的生物,尽管它们看起来完全一样。 就如相等和相同在意思上是有差异的,理解这种差异对理解Python中的操作符“is”和“==”是很重要的。 “==”更侧重于检测相等:如果这些猫是Python对象,我们用“==”比较它们,我们会得到“两只猫是相等的”。 “is”侧重于比较相同:如果我们用“is”比较它们,我们会得到“这是两只不同的猫”。 在我把所有的东西都用猫作为类比之前,让我们来看看一些真正的Python代码。 首先,我们将创建一个新的列表对象并将其命名为a,然后定义另一个变量b指向同一列表的对象: SHAPE \* MERGEFORMAT 我们来看看这两个变量,我们可以看到它们指向相同的列表。 SHAPE \* MERGEFORMAT 因为两个列表对象看起来相同,所以当我们使用“==”运算符比较它们的相等性时,我们会得到预期的结果: SHAPE \* MERGEFORMAT 然而,这并没有告诉我们a和b是否真的指向同一个对象。当然,我们知道它们是指向同一个对象的,因为我们之前给它们分配了相同的对象,但是假设我们不知道我们会发现什么? 那么将两个变量用“is”操作符进行比较,这会证明两个变量是指向同一个列表对象的: SHAPE \* MERGEFORMAT 我们来看看当我们创建列表对象的相同副本时会发生什么,我们可以通过在现有列表上调用list()来创建一个名为c的副本: SHAPE \* MERGEFORMAT 您将再次看到我们刚刚创建的新列表看起来与a和b指向的list对象相同: SHAPE \* MERGEFORMAT 这就是有趣的地方,如果我们使用“==”运算符来比较列表副本c和初始化列表a,您希望看到什么答案? SHAPE \* MERGEFORMAT 好吧,我希望这是您所期待的,这个结果告诉我们c和a有相同的内容,它们被Python认为是相等的,但它们是否指向同一个对象?我们来看看is操作符: SHAPE \* MERGEFORMAT 以上我们得到了不同的结果。Python告诉我们,c和a指向两个不同的对象,尽管它们的内容是相同的。 所以,回顾一下,我们区分“is”和“==”用以下两个简短的定义: 如果两个变量指向同一个(相同的)对象,则“is”表达式为True。 如果变量所引用的对象是相等的(有相同的内容),则“==”表达式的值为True。 只要记住这个,当您需要在Python中使用is和==的时候,就会想到一对孪生的猫(狗也一样),您就会知道该用哪个了。
python有两个用于相等比较的运算符
相关链接
- java反射机制是在运行状态中,对于任意一个类
- 中介者模式mediator也称为调停者模式
- python虽然是解释型语言
- 2018年度城乡居民医保参保登记个人缴费标准首次统一为每年1
- 垃圾回收的运行会阻断渲染进程的运行,这会影响浏览器的体验
- 此页面由社区从英文翻译而来
- 面向对象语言中 this 表示当前对象的一个引用
- 2021年10月20日下午5:30
- 上面廖老师的文章里写到
- 组件对象模型 com 是 windows 中的一个系统
- 用原型实例指定创建对象的种类
- 将对象权限设置为匿名用户读取权限,通过分享对象url
- 在免费版本的生产管理系统erp中如果遇到未将对象引用设置到对
- 借助 s3 对象锁定,您可以使用一次写入
- 使用由对象的多连接网络组成的模型是解决复杂或困难的商业问题最
- 简而言之,window 对象为浏览器窗口对象
- 天黑得那么厉害,伸出的手掌在黑暗中成了勉强能分辨开的忽隐忽现
- 本文主要讨论行为型模式 职责链模式: 职责链模式chain
- 好友 m 打电话给我求救
- 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用
- sui中的对象,和共享对象是什么
- 组件对象模型 com 是 windows 中的一个系统
- 大家好今天来介绍盖房子画图用什么软件的问题
- 外语系召开学生发展对象培训会及观看历史文献纪录片《信仰》 1
- 版权: 本博客的所有文章
- 在文章描述,为什么不在调用方法的时候,直接new对象出来
- 一个对象应该只包含单一的职责
- 请升级到 microsoft edge 以使用最新的功能、安
- 组件对象模型 com 是 windows 中的一个系统
- 云林县身心障碍养护中心在膨鼠森林公园举办“浴火重生