zoukankan      html  css  js  c++  java
  • 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,可以很好地实现这一点。

  • 相关阅读:
    RAID磁盘阵列介绍
    Nginx如何使用Nginx实现MySQL数据库的负载均衡
    挽救数据库性能的30条黄金法则
    mysql主从复制 (指定复制的数库或者表)
    Nginx系列之负载均衡策略
    Redis安装部署(一主二从三哨兵)
    让你的 Linux 命令骚起来
    MySQL/数据库 知识点总结
    Docker私有仓库搭建与界面化管理
    mysql sql语句修改字段名称,字段长度
  • 原文地址:https://www.cnblogs.com/bigband/p/13643087.html
Copyright © 2011-2022 走看看