重复相同的赋值是否会导致相同的id()值?

时间:2012-05-17 16:36:30

标签: python object variable-assignment

这个问题的动机就是这个 this question我误解了 提供了一个拙劣的答案(我删除了它)

我重新阅读http://docs.python.org/library/functions.html#id并在Python中尝试了这个:

>>> a = 3
>>> id(a)
5392456

>>> a = 3
>>> id(a)
5392456

重复了几次......

这些数字(即内存中对象的地址)的事实 同样是依赖于实现的, 保证是这样的 正确?它们可能不同,对吗?我的理解是,每次我这样做 这个简单的赋值,我正在创建一个新对象并将其绑定到一个变量 标识符,所以我不能假设它们将放在同一个地方 在记忆中。

这种理解是否正确?如果是的话,有没有例外?

1 个答案:

答案 0 :(得分:0)

您可以对int之类的不可变类型进行该假设,而不是创建新对象,您的变量可能只引用不可变对象(如果已存在)。执行赋值时,您将创建对对象的引用。该对象可能已存在或可能已创建。