-1

这个问题是由这个 问题引起的,我误读并提供了一个拙劣的答案(我删除了它)

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

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

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

又重复了几遍……

这些数字(即内存中对象的地址)相同的事实取决于实现,并且不能保证,这是正确的吗?他们可能不一样,对吧?我的理解是,每次我做这个简单的赋值时,我都会创建一个新对象并将它绑定到一个变量标识符,所以我不能假设它们会被放在内存中的同一个位置。

这种理解正确吗?如果是这样,是否有任何例外?

4

1 回答 1

0

您可以做出这样的假设,但是对于不可变类型,例如int而不是创建新对象,您的变量可能只是引用不可变对象(如果它已经存在)。当您进行分配时,您正在创建对对象的引用。该对象可能已经存在或可能已创建。

于 2012-05-17T16:39:34.957 回答