1

我对python有基本的了解。谁能告诉我“类型”和“对象”之间的关系是什么(我知道那type是 的子类object)。因为当我们在解释器中执行以下语句时,输出会混淆它们之间的关系,即它们如何解决这种混淆。

1)

type(object)
<type 'type'>
>>> type(type)
<type 'type'>

通过看到上面的结果我们可以说'object'的类型是'type','type'的类型也是'type'。

2) 这样也可以达到与上述相同的结果。

type.__class__
<type 'type'>
>>> object.__class__
<type 'type'>

通过观察这一点,我们可以说类对象是“类型”类型,而“类型”类是自身的类型。3)

object.__bases__
()
>>> type.__bases__
(<type 'object'>,)

但是当我去寻找每个的超类时,我发现对象是新式类系统中所有类的超类,而类型是对象的子类。

我只想知道这两个类之间的关系。它们是如何相互连接的。任何人都可以建议我任何好的学习材料来进入 python 内部。

4

2 回答 2

2

关系是type的子类object。此外,type(x)如果 x 是任何类型(包括其type自身和object),则返回type

>>> type(int)
<type 'type'>
>>> type(str)
<type 'type'>
>>> type(object)
<type 'type'>
>>> type(type)
<type 'type'>

然而:

>>> type(0)
<type 'int'>
>>> type('')
<type 'str'>
于 2013-07-19T05:44:03.850 回答
2

object并且type都是 的实例typetype是 的子类object

这有点奇怪,你不能用你自己的用户定义的类来复制。但是,如果您考虑一下什么typeobject是:

list是一个type,一切都是一个object。因此,typeobject是事物的种类,也就是type.

一切都是一个object。特别是,types 也是objects。因此,type是对象的子类。

于 2013-07-19T07:19:29.083 回答