学习日志-python基础01,浅谈p

发布时间:2019-10-17 09:07:15编辑:auto阅读(2605)

    is 与 == 的根本区别

    ==比较操作符:用来比较两个对象是否相等,value做为判断因素
    is同一性运算符:比较判断两个对象是否相同,id做为判断因素

    可变对象

    >>> [] is []
    False
    >>> [] == []
    True
    
    >>> {} is {}
    False
    >>> {} == {}
    True
    
    首先对象类型不同 is 肯定会返回 False

    其次当对象类型相同 同为可变对象时 ( 即列表,字典 ) ,即使值相等 结果也是False

    原因是他们id不相等, 如下

    >>> a = []
    >>> b = []
    >>> id(a)
    62420192
    >>> id(b)
    59758512

    不可变对象

    那么对象类型相同 同为不可变对象时 ( 即数字,字符串,元组 ),值相等则结果为True
    >>> () == ()
    True
    >>> () is ()
    True
    
    >>> "" == ""
    True
    >>> "" is ""
    True
    
    >>> 1 == 1
    True
    >>> 1 is 1
    True
    
    >>> None == None
    True
    >>> None is None
    True
    原因是它们id值一样
    >>> a = 1
    >>> b = 1
    >>> id(1)
    491022464
    >>> id(a)
    491022464

关键字