Python 的身分運算子 is 與 is not 用於比較兩個物件是否為「同一個記憶體位址」(即同一個物件實例),而非比較數值是否相等。

| 運算子 | 描述 | 範例 |
|---|---|---|
| is | 若兩側物件為同一實例則為 True | a is b |
| is not | 若兩側物件非同一實例則為 True | a is not b |
#!/usr/bin/python
a = 20
b = 20
if a is b:
print("Line 1 - a and b have same identity")
else:
print("Line 1 - a and b do not have same identity")
if id(a) == id(b):
print("Line 2 - a and b have same identity")
else:
print("Line 2 - a and b do not have same identity")
b = 30
if a is b:
print("Line 3 - a and b have same identity")
else:
print("Line 3 - a and b do not have same identity")
if a is not b:
print("Line 4 - a and b do not have same identity")
else:
print("Line 4 - a and b have same identity")
Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity
a = 20; b = 20 實際指向同一個記憶體位址,is 為 True。id(obj) 回傳物件的記憶體位址(整數),a is b 等價於 id(a) == id(b)。b 重新指派為 30(超出快取範圍或新建物件),a is b 變為 False。==。==、!=。None:if x is None:(官方推薦)。is。