理解「is」運算子
儘管具有相同的值,但在使用「is」運算子時,一個常見的誤解是假設它比較變數值。但是,此運算子實際上評估兩個變數是否引用同一個物件。
在您的範例中,以下程式碼:
x = [1, 2, 3] y = [1, 2, 3]
可能會導致您期望「is」運算子回傳True,但回傳False:
print(x is y) # False
這是因為x 和y 儘管共享相同的值,但被視為兩個不同的列表。正如其唯一識別碼所示,它們是不同的物件:
print(id(x)) print(id(y)) # Different identifiers indicate different objects
要比較值,請使用「==」運算子:
print(x == y) # True for equal values
修改其中一個清單不會影響另一個,確認它們是單獨的物件:
x[0] = 4 print(y) # [1, 2, 3] (Unchanged)
將y 分配給 x建立一個指向相同清單的新引用object:
x = y print(id(x)) print(id(y)) # Same identifiers after assignment print(x is y) # True (Same object)
請記住,「is」運算子測試物件身份,而「==」運算子比較值。明智地使用它們,以避免在理解變數引用行為時出現潛在的混亂。
以上是Python 中的「is」和「==」運算子何時會傳回不同的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!