Python 中,对象相等性比较相关关键字包括is、in
,比较运算符有 ==
is
判断两个对象的标识符是否相等in
用于成员检测==
用于判断值或内容是否相等,默认是基于两个对象的标识号比较
也就是说,如果 a is b
为 True 且如果按照默认行为,意味着 a==b
也为 True
is 判断标识号是否相等
is
是Python身份运算符,用于判断两个对象的标识符是否相等(python中万物皆对象),实质是用于比较两个对象是否指向同一存储单元,以下有几点is
的使用方法:
(1) Python 中使用 id()
函数获取对象的标识号,可以理解为内存地址
In [49]: a = 1
In [50]: b = 1
In [51]: id(a)
Out[51]: 140708412432784
In [52]: id(b)
Out[52]: 140708412432784
In [53]: a is b
Out[53]: True
In [54]: s1 = 'abc'
In [55]: s2 = 'abc'
In [56]: id(s1)
Out[56]: 1554773534064
In [57]: id(s2)
Out[57]: 1554773534064
In [58]: s1 is s2
Out[58]: True
(2) 由于创建的两个列表实例位于不同的内存地址,所以它们的标识号不等,即便对于两个空列表实例也一样
In [77]: a = [1,2]
In [78]: b = [1,2]
In [79]: id(a)
Out[79]: 1552668915144
In [80]: id(b)
Out[80]: 1552668915208
In [81]: a is b
Out[81]: False
In [83]: a is not b
Out[<