【问题标题】:similar address to different variable in python . Why? [duplicate]python 中不同变量的类似地址。为什么? [复制]
【发布时间】:2020-10-04 03:43:46
【问题描述】:

在我的研究所,有人告诉我,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 上尝试相同的操作时,它运行良好。每个值都分配到不同的位置

【问题讨论】:

标签: python memory


【解决方案1】:

documentation

id(对象)

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

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

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 2018-02-04
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2021-12-18
    • 1970-01-01
    • 2022-11-23
    相关资源
    最近更新 更多