python 中type和object的关系

学习python的同窗都知道这么几句话python

  • object类是全部新式类的父类。学习

  • type是全部类的类。spa

那么type和object是什么关系呢?
object是一个新式类,咱们能够经过object.__class__object.__bases__来获取object所属的类核他的父类。code

>>> object.__class__
<type 'type'>

这说明 object类是一个type元类的实例。这与type是全部新式类的类这一说法相符合。blog

>>> object.__bases__
()

这说明 object类已经处于继承链条的顶端,是全部类的父类。继承

>>> type.__class__
<type 'type'>

这说明type自身的类就是type。就是说type元类也就是由type自身建立的。图片

>>> type.__base__
<type 'object'>

这就是说type这一元类的父类是object。it

咱们来捋一捋,也就是说:
object类是由元类type建立的,可是type类又继承了object类。 type元类的类则是由type元类自身建立的。class

咱们把python中的内置类和用户建立的内归入其中,咱们就能够画出一下关系图
图片描述object

简单说明一下出了type和object关系的其余部分。
int、float、str、boolean、tuple、dict、set等内置的数据类型其实也就是内置的类。
type是一个比较特殊的类,他是全部类的类。因此估计要与int等这种类保持一致,因此也是小写的?

咱们平常在程序中建立的具体的整数, 浮点数、字典、元祖等就是上面int、float、boolean等的实例。

咱们写代码的建立的自定义类分两种,一种是新式类,一种是经典类。
新式类的类都是type,它的最终父类是object。
经典类的建立者,也是是经典类的类是一个叫classobj的东西,classobj的类才是type。

以上文字仅基于本身的理解。有错误还请指正。

相关文章
相关标签/搜索