Python中的id()函数

2024-06-16 11:40:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在以下代码中:

L = [1,2,3]
addr1 = id(L)
L = L + [4,5]
addr2 = id(L)
L = [1,2,3]
addr3 = id(L)
L += [4,5]
addr4 = id(L)
print addr1 == addr2
print addr3 == addr4

答案是FalseTrue,但为什么呢?你知道吗

我以为L += [4,5]只是L = L +[4,5]的缩写。你知道吗


Tags: 答案代码idfalsetrueprintaddr2addr1
2条回答

x是一个列表时,x += y并不完全等同于x = x + y。当它是一个列表时,+=对列表执行就地修改,而不是使用串联创建一个新列表。但是+总是创建一个新列表。你知道吗

对象可以实现__iadd__特殊方法,这意味着“就地添加”。你知道吗

列表实现了这一点。你知道吗

您可以对自己的对象执行此操作,并选择返回原始对象或新对象。你知道吗

相关问题 更多 >