python中 ‘is’ 和 ‘==’ 区别

id –> 唯一身份标识符, is比较的是id, ==比较的是value 

 

首先, 明确以下三个知识点

id -> 返回对象的'唯一标识符'
== -> 比较操作符,比较判断两个对象的value(值)是否相等
is -> 同一性运算符,判断id是否相同

实验

01

02

03

总结

> a  is  b,实际上是做 id(a)==id(b) 运算
> a == b,实际上比较的是id(a)这个地址指向的值(内存地址)是不是和id(b)这个地址指向值一样
> 只有数值型和字符串型的情况下(a和b的value相等),a  is  b才为True,当a和b是tuple,list,dict或set型       时,a is b为False
> python为了实现对内存的有效利用,对小整数[-5,256]内的整数会进行缓存,不在该范围内的则不会缓存

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96312

(0)
rumor31rumor31
上一篇 2018-04-16 10:22
下一篇 2018-04-16 10:33

相关推荐

  • 元组与字符串

    元组tuple 一个有序的元素组成的集合,不可变,用()表示,可进行索引,正索引:从左至右,从0开始;负索引:从右至左,从-1开始,正负索引不可超界,否则引发indexerror,tuple[index],index就是索引,使用中括号访问 元组是只读的,所以没有增,改,删的方法 冒泡法:属于交换排序,两两比较大小,交换位置,结果分为升序和降序排列 升序:n…

    Python笔记 2018-04-01
  • 正则表达式

    正则表达式 分类 BRE:基本正则表达式,grep,sed,vi等软件支持,vim有扩展 ERE:扩展正则表达式,egrep,grep -E ,sed  r等 PCRE:几乎所有的高级语言都是PCRE的方言或则变种, 基本语法 元字符metacharater .  匹配除换行符外任意一个字符 [abc]字符集合,只能表示一个字符的位置,匹配所包含的任意一个字…

    Python笔记 2018-05-07
  • 封装与解构 集合

    封装和解构 封装:将多个值进行分割,结合在一起,本质上返回元组,只是省掉了小括号 ‘==‘意思为内容一致,‘=’意思为内存空间一致 解构:把线性结构的元素解开,并顺序的赋值给其他变量,左边接纳的变量数要和左边解开的元素数量一致 集合不是非线性 解构中使用*变量名接收,但不能单独使用,被*变量名收集后组成一个列表 第一个下划线为9,结果被第二个下划线重新赋值为…

    Python笔记 2018-04-01
  • Python内置数据结构——字符串

    知识结构图 学习笔记 字符串 字符组成的有序序列,字符的集合 使用单引号、双引号、三引号引起来的字符序列 不可变对象 Unicode类型 定义 单引号、双引号、三引号 r、R:引号内的字符原样输出 元素访问 索引访问 可迭代 join连接 “string“.join(iteratable) 使用string作为分隔符将可迭代对象连接起…

    2018-03-31
  • 异常、模块、分发、插件化开发、插槽和反向等

    异常、模块、分发、插件化开发、插槽和反向等

    Python笔记 2018-05-22