gpt4 book ai didi

Python 多重赋值和引用

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:27 25 4
gpt4 key购买 nike

为什么多重赋值对整数进行不同的引用,而不是列表或其他对象?

>>> a = b = 1
>>> a += 1
>>> a is b
>>> False
>>> a = b = [1]
>>> a.append(1)
>>> a is b
>>> True

最佳答案

在 int 示例中,您首先将同一对象分配给 ab,然后将 a 重新分配给另一个对象( a+1 的结果)。 a 现在指的是一个不同的对象。

在列表示例中,您将同一个对象分配给 ab,但是您没有做任何更改。 append 仅更改列表对象的内部状态,而不是其身份。因此它们保持不变。

如果您将 a.append(1) 替换为 a = a + [1],您最终会得到不同的对象,因为您再次分配了一个新对象对象(a+[1] 的结果)到 a

请注意,a+=[1] 的行为会有所不同,但这是一个整体 other question .

关于Python 多重赋值和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31152195/

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