type、class、object的关系

1. python中一切皆对象:

其中函数和类也是对象,具体体现为:

  • 可以赋值给一个变量
  • 可以添加到集合对象中,如可以添加到列表中
  • 可以作为参数传入函数
  • 可以作为函数的返回值

2. type class boject

a = 1
type(1)    #结果为class int
type(int)  #结果为class type

type 有两个作用:一是返回对象的类型;二是实例化一个类对象。
上例中:type作为一个类,通过实例化产生一个新的类int或者说实例化产生一个class类型的对象int,int作为一个类,通过实例化产生一个对象1, 1这个对象赋值给变量a。因此平常所使用的类是由type这个类生成的一个对象。
object是所有类中最顶层(最基础的类)

image.png

  • 从上图中可以看出type的父类是object,即object是一个类,且是type的父类。
  • object的父类为空,说明object是所有类中最基础的类。
  • object作为一个对象,是由type这个类实例化产生的

总结如下:

image.png

以list为例。第一,list是type实例化产生的一个对象(故type(list)返回结果为type),因此list是一个对象;
第二,list是继承自object这个基础类的,因此list是一个类(list._bases_返回结果为objecct)
综上,list既是一个类,也是一个对象,因此python中类也是对象。
同样的,type可以实例化自己,也可以实例化object,同时继承自object
object是最基础的类,是由type实例化得到的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 怎样才能爱上读书? ——风华读书会,读书三板斧 “人之为学有难易乎? 学之,则难者亦易矣; 不学,则易者亦难矣。”...
    李风华老师阅读 349评论 0 0
  • 《一个都没死》 作者:李恩挥 从公司走出来,陈阳把头埋的低低的,藏在厚实的黑色大衣里,生怕周围有人看见他脸上的表情...
    李恩挥阅读 938评论 3 43
  • 这是程序员带你学习安卓开发系列教程。本文章致力于面向对象程序员可以快速学习开发安卓技术。 上篇文章:.Net程序员...
    做全栈攻城狮阅读 468评论 0 1
  • 相信每个人看到这个题目,都会有一定的想法吧。 我上周给自己定的计划是每天晚上11点睡觉,早上要早起,每周早起的时间...
    木易辰雨阅读 178评论 0 0