python中 is 和 == 的区别

在python中,is检查两个对象是否是同一个对象,而==检查他们是否相等.

例如

p = [1]
q = [1]
p is q # False 因为他们不是同一个对象
p == q # True 因为他们的值相等

但是有且仅有一个None,他们总是相同的,所以会返回True.

p = None
q = None
p is q # True 因为他们都指向同一个"None"
a='test'
b=a
c=a
b is c #True 因为他们都指向相同的对象a

所以如果你要比较两个值是否相同就用==,如果比较是否是同一个对象就用is.

其实python中的is比较的对象很像C语言中的指针,只有地址相同的指针才是同一个指针.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的对象包含三要素:id、type、value。 id 用来唯一标识一个对象,type 标识对象的类型...
    東飛阅读 205评论 0 0
  • 要理解Python中is和==的区别,首先要理解Python对象的三个要素: is和==区别 程序举例 例1: 例2:
    ByiProX阅读 923评论 1 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,206评论 6 13
  • 雪梨,我知道我回家之后对你不够好,有时候会略过你的消息,但我更希望你能理解我,我已经尽我所能去找你聊天,我也很...
    ZHDSPB阅读 156评论 1 0