= 運算子如何在Python 中對列表進行操作
Python 中的= 運算子在應用於清單時會表現出意外運算子的行為。此行為歸因於 iadd 和 add 特殊方法之間的區別。
iadd 與add
列表上的行為
當 = 在具有iadd 方法的列表上使用時,列表已就地修改。如果未定義 iadd,則呼叫 add,從而產生一個新清單。
範例
考慮以下內容code:class foo: bar = [] def __init__(self, x): self.bar += [x] class foo2: bar = [] def __init__(self, x): self.bar = self.bar + [x] f = foo(1) g = foo(2) print(f.bar) print(g.bar) f.bar += [3] print(f.bar) print(g.bar) f.bar = f.bar + [4] print(f.bar) print(g.bar) f = foo2(1) g = foo2(2) print(f.bar) print(g.bar)
輸出
[1, 2] [1, 2] [1, 2, 3] [1, 2, 3] [1, 2, 3, 4] [1, 2, 3] [1] [2]
解釋
結論
= 在列表上的行為取決於它是否在調用iadd 或add__。就地修改透過 __iadd__ 進行,而 __add 建立一個新清單。
以上是Python 的 = 運算子如何根據 __iadd__ 和 __add__ 對清單產生不同的影響?的詳細內容。更多資訊請關注PHP中文網其他相關文章!