身份运算符
我们已经看到 Python 如何将每个值或数据项视为一个对象。
关系运算符 ==
可用于测试操作数是否包含相同的值。
python
>>> n = 1
>>> n2 = 1
>>> n == n2
True
然而,此运算符不检查两个操作数是引用同一个对象还是不同的对象。
身份运算符 is
和 is not
分别用于测试两个对象是否具有相同或不同的身份(指向内存中的相同位置)。
a is b
等效于 id(a) == id(b)
,其中 id()
是返回对象身份的内置函数。
python
>>> n = 1
>>> n2 = 1
>>> n is n2
True
在上面的示例中,变量 n
和 n2
都指向相同的内存位置(同一个对象)。
python
>>> l = [1, 2, 3]
>>> l2 = [1, 2, 3]
>>> l == l2
True
>>> l is l2
False
在上面的示例中,列表 l
和 l2
虽然包含具有相同值的项,但实际上是占用不同内存位置的两个不同对象。