【发布时间】:2021-05-11 10:39:34
【问题描述】:
来自python文档的id()函数:
返回对象的“身份”。这是一个整数(或长整数),保证该对象在其生命周期内是唯一且恒定的。具有不重叠生命周期的两个对象可能具有相同的 id() 值。
CPython 实现细节:这是对象在内存中的地址。
这很清楚,我明白了。它将一个 python 类实例传递给 id 函数,它返回该对象的“身份”/地址。但是,如果将 python 类名传递给 id 函数。它返回什么?来自示例。
class Abc:
value = 0
x = Abc()
id(x) # -> 65097560
id(Abc) # -> 67738424
我知道 65097560 是对象x 的内存地址。但是id(Abc)/67738424是什么意思呢?
【问题讨论】:
-
类是对象。所有相同的信息都适用。
-
返回对象
ABC的标识。由于一切都是对象,您甚至可以获得函数的标识,例如print(id(abs)). -
Abc只是type的一个实例,您可以通过评估type(Abc)来观察它。 -
@Matthias 或
id(id):-) -
ID 的任何更深层次的“含义”都取决于实现。对于大多数实现,这将是
type实例对象的内存地址,就像其他对象一样。
标签: python class object identity