Python-指针和对象的ID

问题描述 投票:0回答:2

我们说在Python中,每个创建的对象都有一个唯一标识它的数字。

[当我们将点指向500并获得a和500的ID时:

a=500
id(a), id(500)
(140733559789896, 140733559789992)

这是否意味着引用a(140733559789896)的ID像指向500的点“指向”对象500?

并且为什么140733559789992不是对象500的ID?

python object pointers id
2个回答
0
投票

id(500)在内存中创建一个新对象,并为其分配一个ID。即使它们共享相同的值,它也不是与a相同的对象。

想象我们有这段代码:

a = 500
b = 500

我们期望id(a) == id(b)吗?当然不是–它们是不同的对象。


0
投票

这是否意味着引用a的ID(140733559789896)像指向500的点“指向”对象500?

根据id的文档,它是对象500在内存中的地址。

并且为什么140733559789992不是对象500的ID?

是。500行中的a = 500和第二行中传递给500id(500)是不同的对象,因此标识也不同。

© www.soinside.com 2019 - 2024. All rights reserved.