与python中不同变量的相似地址。为什么?

时间:2020-10-04 03:43:46

标签: python memory

在我的学院里,我被告知python中的每个变量都有它自己的内存地址,并且每个变量中的内存地址都不同。他们通过使用id()命令证明了这一点,并向我们展示了

>>>a=10
>>>b=20
>>>id(a)
94349304104992
>>>id(b)
94349304105312

通过显示此语句,他们向我们证明了两个内存位置如何不同。

然后我在linux终端上尝试相同的操作,当我尝试...时得到了一些奇怪的答案。

>>>id(999)
139978570234704
>>>id(10001) 
139978570234704
>>>id(9999)
139978570234704
>>>id(100001)
139978570234704
>>>id(99999)
139978570234704
>>>id(1000001)
139978570234704
>>>id(999999)
139978570234704
>>>id(10000001)
139978570234704

尝试了所有这些之后,我发现所有这些数字都指向相同的位置,我不明白为什么只有这种数字会发生这种情况

除此之外,当我在Windows cmd上尝试相同的操作时,它工作正常。每个值都分配到了不同的位置

1 个答案:

答案 0 :(得分:0)

请参见documentation

id对象

返回对象的“身份”。这是一个整数,可以保证在此对象的生存期内唯一且恒定。具有不重叠生命周期的两个对象可能具有相同的id()值。

CPython实现细节:。这是对象在内存中的地址。