• Python 高级编程系列__02:type、object、class 的关系


    通过以下代码可以了解 type、object、class 的关系:

    a=1
    b="abc"
    
    print (type (1))
    print (type (int))
    print (type (b))
    print (type (str))
    
    输出:
    <class 'int'>
    <class 'type'>
    <class 'str'>
    <class 'type'>
    

    这说明:
    type -> int -> 1
    type -> class -> object

    type这个类生成一个类型,这个类型再生成一个对象。
    得出结论:类是由type这个类生成的对象。

    object是最顶层的基类,所有的类推算到最后,它们的基类都是object。

    可以再看下面的例子:

    class Student:
     pass
    
    class Mystudent (Student):
     pass
    
    stu = Student()
    print(type (stu))
    print(type (Student))
    
    print(int.__bases__)
    print(str.__bases__)
    print(Student.__bases__)
    print(Mystudent.__bases__)
    print(type.__bases__)
    print(object.__bases__)
    print(type  (object))
    
    输出:
    <class '__main__.Student'>
    <class 'type'>
    
    (<class 'object'>,)
    (<class 'object'>,)
    (<class 'object'>,)
    (<class '__main__.Student'>,)
    (<class 'object'>,)
    ()
    <class 'type'>
    

    结论:
    1、自定义的类,他的类型也是type。
    2、所有的类的最顶层的基类,是object。
    3、object 的上一层,没有了,object 就是最顶层。
    4、type 本身是一个类,同时也是一个对象,它的父类是 object。
    5、object 这个类是由 type 生成的。
    6、所有的类,都是有 type 生成的, 包括 type 也是由 type 生成的。

    list 是一个类,是type生成的类,也是一个对象,object 的对象。

    object 是 type 的一个实例,type 是继承自 object。

    object 是所有类的一个基类。

    一切皆对象,一切皆继承自 object 。

    所有的类都是由 type 创建出来的。

    这就是 Python 的设计理念:一切皆对象。
    既然所有的东西都是对象,那么函数、类都是对象,那么就都可以修改,如果是Java,虽然也能改,但是特别麻烦。
    Python 的两套体系,一个是 type,一个是 object,可以很好地实现这一点。

  • 相关阅读:
    云架构师进阶攻略(3)
    微服务化之服务拆分与服务发现
    终于有人把云计算、大数据和人工智能讲明白了!(1)
    JavaScript的数组详解
    html中给元素添加背景图片或者gif动图
    JavaScript的事件
    JavaScript的匿名函数
    JavaScript获取和操作html的元素
    JavaScript的条件运算符与条件语句
    JavaScript变量、数据类型、函数
  • 原文地址:https://www.cnblogs.com/bigband/p/13643087.html
Copyright © 2020-2023  润新知