id()功能的Python文档指出以下内容:
这是一个整数,可以保证在此对象的生存期内唯一且恒定。具有不重叠生命周期的两个对象可能具有相同的
id()值。CPython实现细节:这是对象在内存中的地址。
虽然,下面的代码片段显示了id重复的。由于我没有明确del显示对象,因此我假设它们都是活动的并且是唯一的(我不知道不重叠的含义)。
>>> g = [0, 1, 0]
>>> for h in g:
... print(h, id(h))
...
0 10915712
1 10915744
0 10915712
>>> a=0
>>> b=1
>>> c=0
>>> d=[a, b,c]
>>> for e in d:
... print(e, id(e))
...
0 10915712
1 10915744
0 10915712
>>> id(a)
10915712
>>> id(b)
10915744
>>> id(c)
10915712
>>>
Run Code Online (Sandbox Code Playgroud)
id不同对象的值如何相同?是因为值0(class的对象int)是一个常量并且解释器/ C编译器进行了优化吗?
如果我要这样做a = c,那么我理解c …