python中object是什么类型_python 中的object与type的关系

在看下去之前,也要请先明白,在Python里面,所有的东西都是对象的概念。

在面向对象体系里面,存在两种关系:

- 父子关系,即继承关系,表现为子类继承于父类,如『蛇』类继承自『爬行动物』类,我们说『蛇是一种爬行动物』,英文说『snake is a kind of reptile』。在python里要查看一个类型的父类,使用它的__bases__属性可以查看。

- 类型实例关系,表现为某个类型的实例化,例如『萌萌是一条蛇』,英文说『萌萌 is an instance of snake』。在python里要查看一个实例的类型,使用它的__class__属性可以查看,或者使用type()函数查看。

这两种关系使用下面这张图简单示意,继承关系使用实线从子到父连接,类型实例关系使用虚线从实例到类型连接:

d57e00b9c7a3c1d65573b96ddddf71e8_hd.jpg

我们将使用一块白板来描述一下Python里面对象的关系,白板划分成三列:

702d34bae50d2e4f42e0ae4f45e2e996_hd.jpg

先来看看type和object:

>>> object

>>> type

它们都是type的一个实例,表示它们都是类型对象。

在Python的世界中,object是父子关系的顶端,所有的数据类型的父类都是它;type是类型实例关系的顶端,所有对象都是它的实例的。它们两个的关系可以这样描述:

- object是一个type,object is and instance of type。即Object是type的一个实例。

>>> object.__class__

>>> object.__bases__ # object 无父类,因为它是链条顶端。

()

- type是一种object, type is kind of object。即Type是object的子类。

>>> type.__bases__

(,)

>>> type.__class__ # type的类型是自己

此时,白板上对象的关系如下图:

d7d23c4f1eded696c72c28cdc3ce9c17_hd.jpg

我们再引入list, dict, tuple 这些内置数据类型来看看:

>>> list.__bases__

(,)

>>> list.__class__

>>> dict.__bases__

(,)

>>> dict.__class__

>>> tuple.__class__

>>> tuple.__bases__

(,)

它们的父类都是object,类型都是type。

再实例化一个list看看:

>>> mylist = [1,2,3]

>>> mylist.__class__

>>> mylist.__bases__

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'list' object has no attribute '__bases__'

实例化的list的类型是, 而没有了父类。

把它们加到白板上去:

dcfa446418490a973b8dd47e83c181a8_hd.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值