为什么type .__ base__是object但object .__ class__是type?

时间:2018-09-19 03:26:15

标签: python python-2.7

我在Jupyter控制台中运行以下代码(Python的版本为2.7.14):

type.__base__
Out[2]: object

object.__class__
Out[3]: type

对我来说似乎是一个难题。 type的基类是object,但是object的类是type有一个圈子。

我尝试了以下其他代码,

class B(object): pass

class A(B): pass

A.__base__
Out[8]: __main__.B

B.__class__
Out[9]: type

A和B之间显然没有圈。而且我不明白为什么在谈论typeobject时会有一个圈子。


更新

是的,所有的类都是一个类型。但是我想知道如何解释type.__class__本身就是type

1 个答案:

答案 0 :(得分:0)

由于object是一种类型,因此object.__class__应该是type

由于type本身是一个类,因此它是从object继承的。

看下面两个例子,可以更清楚地看到:

>>> type.__class__
<class 'type'>
>>> object.__base__
>>> 

因此,object.__base__为无。