美文网首页python学习
python学习笔记-04“==” 与 “is” 的关系

python学习笔记-04“==” 与 “is” 的关系

作者: Jane93 | 来源:发表于2019-05-08 08:31 被阅读0次

    “==” 与 “is” 的关系

    == 表示对值的比较

    ‘is’ 表示对id 的比较,也可以说是对实例进行比较

    例:

    >>> a = 1
    >>> b = 1
    >>> a== b
    True
    >>> a is b
    True
    >>> a = 256
    >>> b = 256
    >>> a ==b
    True
    >>> a is b
    True
    >>> a = 257
    >>> b = 257
    >>> a == b
    True
    >>> a is b
    False
    >>> id(a)
    47478144
    >>> id(b)
    47478064
    >>> 
    
    

    对于‘is’可以对部分数值进行比较,是因为python的机制:

    因为出于对性能的考虑,Python内部做了很多的优化工作,对于整数对象,Python把一些频繁使用的整数对象缓存起来,保存到一个叫small_ints的链表中,在Python的整个生命周期内,任何需要引用这些整数对象的地方,都不再重新创建新的对象,而是直接引用缓存中的对象。

    Python把这些可能频繁使用的整数对象规定在范围[-5, 256]之间的小对象放在small_ints中,但凡是需要用些小整数时,就从这里面取,不再去临时创建新的对象。

    以上,可知:对于‘is’对[-5,256]范围内的数值进行比较,得到的结果为‘True’;超过此范围,结果为‘False’。

    相关文章

      网友评论

        本文标题:python学习笔记-04“==” 与 “is” 的关系

        本文链接:https://www.haomeiwen.com/subject/kvepoqtx.html