专栏首页python3Python中 is 和 == 区别

Python中 is 和 == 区别

Python中is和==的区别,如下:

环境是在IPython做的测试

在Python中 is是一个对象标识符(object identity ),== 表示相(equality); is 是通过对象所指向的内存地址是否相等来进行判断 == 则是通过调用方法 eq判断两边的对象是否相等 一般情况下 a is b 返回True的话这表示 a,b指向同一内存地址 a ==b 返回True,即a 和b 的值相等

图1

图2

图1和图2对比发现,操作思路都是一样为啥返回结果却不一样,图1这是由于Python中的字符串驻留机制起了作用,在Python中,对于较小的字符串,为了提高系统性能,Python会保留其值的副本,当创建新的一样的值的时候,Python会直接指向保留的这个副本;对图2中所给的字符串属于了较长字符串,Python中不会驻留,即不会创建副本,所以创建了不同的对象保存,虽然值相同,但是内存地址不同。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python语言与其他语言对比

    python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路,以下是Python与其他编程语言的优缺点对比:

    py3study
  • 用VS2015作为Python的IDE

    不知道为什么,关于python IDE好多人都推荐用pycharm,但是无奈没人教,作为一只小白,真心不会用。于是就用了VS2015.

    py3study
  • Python学习之认知(一)

    ​ 编程语⾔主要从以下几个⻆度为进行分类,编译型和解释型、静态语言和动态语⾔、强类型定义语言和弱类型定义语言。

    py3study
  • Numpy 库准备放弃支持 Python 2

    Numpy 是 Python 的一个科学计算的库,提供了矩阵运算的功能,一般与 Scipy、matplotlib 一起使用。今天 Numpy 的 GitHub ...

    Debian社区
  • 用VS2015作为Python的IDE

    不知道为什么,关于python IDE好多人都推荐用pycharm,但是无奈没人教,作为一只小白,真心不会用。于是就用了VS2015.

    py3study
  • Python实现文字识别详解,来看看大牛怎么实现截图即识别文字!

    云飞
  • “好串”求解算法优化原理与Python实现

    =====正文======= 题目要求:称一个 0-1 串是“好串”,如果它的任何子串不在其中连续出现三次以上。编写程序,输入正整数 n,输出某个长度为 n ...

    Python小屋屋主
  • Python源码学习笔记(一)编译与安装

    --------------------------------------------------------------------------------...

    用户1631416
  • 资源 | Python数据分析课程:从入门到实战

    用户1737318
  • Python能让你上天?带你挖掘隐藏彩蛋~(附代码)

    数据派THU

扫码关注云+社区

领取腾讯云代金券