身份运算符用于比较两个对象的存储单元。
is:判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回True,否则返回False
is not:判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果True,否则返回False。
>>> a = 20
>>> b = 20
>>> a is b
True
>>> a is not b
False
>>> a == b
True
>>> id(a) == id(b)
True
注:id()函数用于获取对象内存地址。
is
与==
区别:
-
is
用于判断两个变量引用对象是否为同一个 -
==
用于判断引用变量的值是否相等。
>>> a = [1, 2, 3]
>>> b = a
>>> a is b
True
>>> a == b
True
>>> id(a) == id(b)
True
>>> b = a[:]
>>> a is b
False
>>> a == b
True
>>> id(a) == id(b)
False