【发布时间】:2012-05-25 06:29:07
【问题描述】:
这个问题的动机是 this question 我都误读了 提供了一个拙劣的答案(我删除了它)
我重新阅读了http://docs.python.org/library/functions.html#id,并在 Python 中尝试过:
>>> a = 3
>>> id(a)
5392456
>>> a = 3
>>> id(a)
5392456
重复了几次......
事实上,这些数字(即内存中对象的地址)是 同样是依赖于实现,不保证,是 正确的?他们可能不一样,对吧?我的理解是每次我这样做 这个简单的分配,我正在创建一个新对象并将其绑定到一个变量 标识符,所以我不能假设它们会放在同一个地方 在内存中。
这种理解正确吗?如果有,有什么例外吗?
【问题讨论】:
-
实现是免费的,从不实习任何东西。
-
@interjay 好的,所以您确认我对此的理解是正确的,对吧?并且不能保证我的示例给出相同的内存值这一事实。
-
是的,你不应该指望它是一样的。
id有用的情况非常少见。 -
不知道为什么我在发布后的一个多月内得到了反对票......我认为问题很清楚,我也做了一些自己的步法......去想。
标签: python object variable-assignment