清單中= 運算子的異常行為
在Python 中,= 運算子在與清單一起使用時會表現出意外的行為。這種特殊的行為源自於 iadd 和 add 特殊方法之間的區別。
iadd 方法允許就地添加、修改它所操作的物件。另一方面,add 通常傳回一個新物件並由運算符使用。
對於列表等可變對象,= 呼叫 __iadd__,導致物件本身的修改。但是,對於元組、字串和整數等不可變類型,會產生一個新物件(實際上,a = b 轉換為 a = a b)。
因此,可以在 iadd 之間進行選擇並且 add 至關重要。使用 a = b 會導致呼叫 iadd 並隨後修改 a,而 a = a b 建立一個新物件並將其指派給 a。它們代表不同的操作。
對於同時支援 iadd 和 add__ 的類型,在選擇適當的方法時需要仔細考慮。 a = b 將觸發 __iadd 並因此修改 a,而 a = a b 將產生一個新物件並將其分配給 a.
以上是為什麼 Python 的 = 運算子與列表的行為不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!