专栏首页python3Python之is与==的区别

Python之is与==的区别

首先看几个例子:

# -*-coding=utf-8 -*-
a="Hello Python"
b="Hello Python"
print (a is b)    #结果是:True
print (a == b)    #结果是:True
a=[1,2,3]
b=[1,2,3]
print (a is b)    #结果是:False
print (a == b)    #结果是:True
a=[1,2,3]
b=a
print (a is b)    #结果是:True
print (a == b)    #结果是:True

运行结果:

True
True
False
True
True
True

is     表示同一性测试

==  表示比较

程序在查检a is b时,表示id(a)==id(b),而检查a==b时,调用对象__eq__()方法,相当于a.__eq__(b)

a="Hello Python"
b="Hello Python"
print (id(a),id(b))
a=[1,2,3]
b=[1,2,3]
print (id(a),id(b))
a=[1,2,3]
b=a
print (id(a),id(b))

运行结果:

(82999696L, 82999696L)
(83640456L, 83756168L)
(83757576L, 83757576L)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python学习-比较运算符和逻辑运算符

      and  布尔"与" - --  如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值

    py3study
  • (三)Python3 循环语句——whi

    同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环。

    py3study
  • python学习1

    py3study
  • 跨程序共享数据——Content Provider 之 运行时权限解析以及申请的实现(可完美解决java.lang.SecurityException:Permission Denial 问题)

    本模块共有四篇文章,参考郭神的《第一行代码》,对Content Provider的学习做一个详细的笔记,大家可以一起交流一下:

    凌川江雪
  • js跳转界面

    js页面跳转大全 所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过javsrcipt脚本就会跳转到B页面。 ...

    用户1219438
  • 22. Python 模块2

    日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改。

    py3study
  • Android开发笔记(三十八)列表类视图

    AdapterView顾名思义是适配器视图,Spinner、ListView和GridView都间接继承自AdapterView,这三个视图都存在多个元素并...

    用户4464237
  • 教程 | 用摄像头和Tensorflow.js在浏览器上实现目标检测

    机器之心
  • Vue 源码分析——构造函数原型

    在执行 npm run dev 的时候 根据script/config.js 文件中的配置

    用户1197315
  • webStorm 3.0配置使用主题背景色等

    http://www.cnblogs.com/jikey/archive/2012/01/16/2323590.html

    bear_fish

扫码关注云+社区

领取腾讯云代金券