我在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之间显然没有圈。而且我不明白为什么在谈论type
和object
时会有一个圈子。
更新:
是的,所有的类都是一个类型。但是我想知道如何解释type.__class__
本身就是type
。
答案 0 :(得分:0)
由于object
是一种类型,因此object.__class__
应该是type
。
由于type
本身是一个类,因此它是从object
继承的。
看下面两个例子,可以更清楚地看到:
>>> type.__class__
<class 'type'>
>>> object.__base__
>>>
因此,object.__base__
为无。