gpt4 book ai didi

python - list.__iadd__ 和 list.__add__ 的不同行为

转载 作者:太空狗 更新时间:2023-10-29 17:38:22 25 4
gpt4 key购买 nike

考虑以下代码:

>>> x = y = [1, 2, 3, 4]
>>> x += [4]
>>> x
[1, 2, 3, 4, 4]
>>> y
[1, 2, 3, 4, 4]

然后考虑一下:

>>> x = y = [1, 2, 3, 4]
>>> x = x + [4]
>>> x
[1, 2, 3, 4, 4]
>>> y
[1, 2, 3, 4]

为什么这两个有区别?

(是的,我试着搜索这个)。

最佳答案

__iadd__ 改变列表,而 __add__ 返回一个列表,如演示的那样。

x += y 的表达式首先尝试调用 __iadd__ ,如果失败,则在赋值后调用 __add__ (参见 Sven 的评论进行较小的更正)。因为 list__iadd__ 然后它做了一点点的变异魔法。

关于python - list.__iadd__ 和 list.__add__ 的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com