我对python有基本的了解。任何人都可以告诉我'type'和'object'之间的关系是什么(我知道type
是object
的子类)。
因为当我们在解释器中执行以下语句时,输出会混淆彼此之间的关系,即它们如何解决这种混淆。
1)
type(object)
<type 'type'>
>>> type(type)
<type 'type'>
通过查看上述结果,我们可以说'对象'的类型是'type','type'的类型也是'type'。
2)同样可以实现与上述相同的结果。
type.__class__
<type 'type'>
>>> object.__class__
<type 'type'>
通过观察这个我们可以说类对象是'type'类型而class'type'是它自己的类型。 3)
object.__bases__
()
>>> type.__bases__
(<type 'object'>,)
但是当我选择每个类的超类时,我发现该对象是New-style类系统中所有类的超类,而type是对象的子类。
我只想知道这两个类之间的关系。他们如何相互联系。任何人都可以建议我进入python内部的任何好的学习材料。
答案 0 :(得分: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'>
答案 1 :(得分:2)
object
和type
都是type
的实例。 type
是object
的子类。
这有点奇怪,而不是你可以用你自己的用户定义的类复制的东西。但是,如果您考虑type
和object
是什么,那就有意义了:
list
是type
,一切都是object
。因此,type
和object
是各种事物,即type
的a.k.a.实例。
一切都是object
。特别是,type
s也是object
。因此,type
是对象的子类。