为什么键入.__ base__是对象但对象.__ class__是类型?

问题描述 投票:-4回答:1

我在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

python python-2.7
1个回答
0
投票

因为object是一种类型,object.__class__应该是type

由于type本身就是一个类,它继承自object

看看这两个例子让我们看得更清楚:

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

所以,object.__base__是None。

© www.soinside.com 2019 - 2024. All rights reserved.