这个问题的动机就是这个 this question我误解了 提供了一个拙劣的答案(我删除了它)
我重新阅读http://docs.python.org/library/functions.html#id并在Python中尝试了这个:
>>> a = 3
>>> id(a)
5392456
>>> a = 3
>>> id(a)
5392456
重复了几次......
这些数字(即内存中对象的地址)的事实 同样是依赖于实现的, 不 保证是这样的 正确?它们可能不同,对吗?我的理解是,每次我这样做 这个简单的赋值,我正在创建一个新对象并将其绑定到一个变量 标识符,所以我不能假设它们将放在同一个地方 在记忆中。
这种理解是否正确?如果是的话,有没有例外?
答案 0 :(得分:0)
您可以对int
之类的不可变类型进行该假设,而不是创建新对象,您的变量可能只引用不可变对象(如果已存在)。执行赋值时,您将创建对对象的引用。该对象可能已存在或可能已创建。