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

python中不同变量的类似地址。为什么?,python,memory,Python,Memory,在我的研究所,我被告知python中的每个变量都有自己的内存地址,每个变量中的内存地址都是不同的。他们用id()命令证明了这一点 >>>a=10 >>>b=20 >>>id(a) 94349304104992 >>>id(b) 94349304105312 通过展示这句话,他们向我们证明了两个内存位置是如何不同的 然后我用我的linux终端做了同样的尝试,当我尝试时得到了一些奇怪的答案 >>>id(999

在我的研究所,我被告知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上尝试同样的方法时,效果很好。将每个值分配到不同的位置

请参见:

id
(对象)

返回对象的“标识”。这是一个整数,保证该对象在其生存期内唯一且恒定。具有非重叠生存期的两个对象可能具有相同的
id()

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


请首先解释为什么您认为它应该以不同的方式工作。这是否回答了您的问题?和