Python中的is和==比较两个对象的两种方法

 更新时间:2017年09月06日 09:41:12   投稿:lqh  
这篇文章主要介绍了Python中的is和==比较两个对象的两种方法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

Python中的is和==比较两个对象的两种方法

在Python中有两种方式比较两个对象是否相等,分别是is和==,两者之间是不同的

  • ==比较的是值(如同java中的equals方法)
  • is比较的是引用(可以看作比较内存地址, 类似于java中的==)

对于:

>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False

由于1和'1'不管在值上面还是在引用上面都不同,所以结果都为false

对于:

>>> n = 1
>>> n is 1
True

这里有一个知识点,简单来说,对于整形这种primitive type,引用比较就是值比较,然而,Python在实现整型中采用了这种方式,对于位于-5到256之间的数字,在内存中保留数组存储这些数字,下次使用时候直接引用。而在此范围外的数字,则会新建int对象

举个简单的example,如下代码所示:

#a和b的值超出256
>>> a = 257
>>> b = 257
>>> a is b
False

#a和b的值在-5和256之间
>>> a = 256
>>> b = 256
>>> a is b
True

如上例子所示,只要是在-5~256之间的整形,python不会给变量初始化新的内存空间,但是一旦超出256,则会分配新的空间。

通过打印两个对象的id也可以直接的看出两个对象内存地址的区别,如下所示:

#a和b的值超出256
>>> a = 257
>>> b = 257
>>>
>>>
>>> id(a)
140638347685960
>>> id(b)
140638347686008

#a和b的值在-5和256之间
>>> a = 256
>>> b = 256
>>> id(a)
140638347656864
>>> id(b)
140638347656864

以上就是Python is和==的对比的详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • python实现对excel进行数据剔除操作实例

    python实现对excel进行数据剔除操作实例

    python在数据分析这方便的介绍应该不用多说了,下面这篇文章主要给大家介绍了关于利用python实现对excel进行数据剔除操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • Python实现的多项式拟合功能示例【基于matplotlib】

    Python实现的多项式拟合功能示例【基于matplotlib】

    这篇文章主要介绍了Python实现的多项式拟合功能,结合实例形式分析了Python基于matplotlib模块进行数值运算与图形绘制相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • python sorted函数原理解析及练习

    python sorted函数原理解析及练习

    这篇文章主要介绍了python sorted函数原理解析及练习,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • pytorch机器学习softmax回归的简洁实现

    pytorch机器学习softmax回归的简洁实现

    这篇文章主要介绍了为大家介绍了pytorch机器学习中softmax回归的简洁实现方式,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • OpenCV 绘制同心圆的示例代码

    OpenCV 绘制同心圆的示例代码

    本文主要介绍了OpenCV 绘制同心圆的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Python爬虫之Selenium中frame/iframe表单嵌套页面

    Python爬虫之Selenium中frame/iframe表单嵌套页面

    这篇文章主要介绍了Python爬虫之Selenium中frame/iframe表单嵌套页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 实例讲解Python中global语句下全局变量的值的修改

    实例讲解Python中global语句下全局变量的值的修改

    global是Python中的一个关键字用来,声明一个局部变量为全局变量,这里我们来以实例讲解Python中global语句下全局变量的值的修改,需要的朋友可以参考下.
    2016-06-06
  • 基于python编写监控系统各项资源的脚本

    基于python编写监控系统各项资源的脚本

    这篇文章主要为大家详细介绍了如何编写一个python脚本,实现监控网络的流量、CPU使用率、内存使用率和磁盘使用情况,感兴趣的小伙伴可以了解下
    2023-11-11
  • 在Django下创建项目以及设置settings.py教程

    在Django下创建项目以及设置settings.py教程

    今天小编就为大家分享一篇在Django下创建项目以及设置settings.py教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pandas 读取各种格式文件的方法

    pandas 读取各种格式文件的方法

    今天小编就为大家分享一篇pandas 读取各种格式文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06

最新评论