我有点困惑object
and type
Python 3 中的类。也许有人可以消除我的困惑或提供一些额外的信息。
我目前的理解是每个班级(除了object
)继承自一个名为的基类object
。但每堂课(包括object
) 也是该类的一个实例type
,它是它自身的一个实例,并且object
并且还继承自object
.
我的问题是:
有没有理由/设计决定object
是一个实例type
and type
继承自object
?有type
/对象的类本身也是一个对象吗?
一个类(type
)是它自己的一个实例?
哪一个才是真正的基类object
or type
?
我一直以为object
将是最“基础”的课程,但它似乎是一个实例type
,这是一个实例object
,这是一个实例type
, ...
这个递归在哪里结束?
是否有可能说明两者之间的关系object
和type
class?
我尝试查找以下条目object
and type
在 Python 标准库的文档中。
每个类(除了对象)都继承自对象。
>>> for x in object, int, float, str, list, dict:
... print(f'{x.__name__:6}: {x.__bases__}')
...
object: ()
int : (<class 'object'>,)
float : (<class 'object'>,)
str : (<class 'object'>,)
list : (<class 'object'>,)
dict : (<class 'object'>,)
每个类都是该类的一个实例type
.
>>> for x in object, int, float, str, list, dict:
... print(f'{x.__name__:6}: {x.__class__}')
...
object: <class 'type'>
int : <class 'type'>
float : <class 'type'>
str : <class 'type'>
list : <class 'type'>
dict : <class 'type'>
type
是其自身的一个实例。
>>> type.__class__
<class 'type'>
type
也继承自object
.
>>> type.__bases__
(<class 'object'>,)
Also
>>> isinstance(object, type)
True
>>> isinstance(type, object)
True
>>> isinstance(type, type)
True
>>> isinstance(object, object)
True
>>> issubclass(type, object)
True
>>> issubclass(object, type)
False