首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python类的id()是什么,而不是类实例

python类的id()是什么,而不是类实例
EN

Stack Overflow用户
提问于 2021-02-07 17:52:50
回答 1查看 170关注 0票数 0

在python文档中,id()函数:

返回对象的“标识”。这是一个整数(或长整数),它保证该对象在其生存期内是唯一的和常量的。两个寿命不重叠的对象可能具有相同的id()值。

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

这很清楚,我明白。它将python类实例传递给id函数,它返回该对象的“identity”/ address。但是,如果将python类名传递给id函数。它还能返回什么?从例子。

代码语言:javascript
复制
class Abc:
    value = 0

x = Abc()

id(x)  # -> 65097560

id(Abc)  # -> 67738424

我知道65097560是对象x的内存地址。但是,id(Abc) / 67738424的含义是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-02-08 02:35:38

Classes are objects themselves。它们是metaclass type的实例。(type也用于确定某物的类型。)

代码语言:javascript
复制
>>> class Abc: pass
... 
>>> type(Abc)
<class 'type'>
>>> id(Abc)
39363368

在Python2中,旧式类是classobj的实例。

代码语言:javascript
复制
>>> class Old: pass
... 
>>> type(Old)
<type 'classobj'>
>>> id(Old)
140369496387664
>>> class New(object): pass
... 
>>> type(New)
<type 'type'>
>>> id(New)
94676790299104

一般来说,everything is an object in Python包括像id()本身这样的函数、内置类型/类(如list )和模块(如sys )。尽管有一些例外,如关键字和运算符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66091209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档