list.__iadd__ 和 list.__add__
之间的行为差异
<code class="python">x = y = [1, 2, 3, 4] x += [4] print(x) # Outputs: [1, 2, 3, 4, 4] print(y) # Outputs: [1, 2, 3, 4, 4]</code>
考虑以下代码片段:
<code class="python">x = y = [1, 2, 3, 4] x = x + [4] print(x) # Outputs: [1, 2, 3, 4, 4] print(y) # Outputs: [1, 2, 3, 4]</code>
相反,观察这个:
为什么这两个代码片段的行为不同?
解释
y 保持不变,因为它是一个不同的对象
因此,x 的值为 [1, 2 , 3, 4, 4] 而 y 仍保持原始值 [1, 2, 3, 4]。以上是为什么 `list.__iadd__` 会修改原始列表和分配的列表,而 `list.__add__` 只修改分配的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!