为什么这个Python类有不同的地址?

时间:2016-06-14 13:56:03

标签: python python-3.x pointers

我做了一个简单的课程:

class Foo:
    pass

然后我用id检查了地址:

>>> id(Foo)
4299236488

我很好奇,我检查了另一种方式:

>>> id(Foo())
4332721208

为什么他们有两个不同的地址?

2 个答案:

答案 0 :(得分:1)

Foo是一个对象,Foo()是对象Foo的一个实例。

>>> type(Foo)
<type 'classobj'>
>>> id(Foo)
140710195094936

>>> type(Foo())
<type 'instance'>
>>> id(Foo())
140710195200224

答案 1 :(得分:0)

你没有用另一种方式检查它。

当您致电foo时,您只需询问您班级的位置。

当您致电foo()时,您创建了一个班级实例。然后询问您的班级实例所在的位置。