有三种不同的模式可以帮助我们对基本类型进行分类,每种模型都展示了这些类型之间的相互关系。

 

一:存储模式

        这种分类模式,看这种类型的对象能保存多少个对象。

        一个能保存单个字面对象的类型称为原子或标量存储,那些可容纳多个对象的类型,称之为容器存储。

        容器类型又带来一个新问题,那就是它是否可以容纳不同类型的对象。所有的Python容器对象都能够容纳不同类型的对象下表按存储模式对Python的类型进行了分类。

分类

Python类型

标量/原子类型

数值(所有的数值类型),字符串(全部是文字)

容器类型

列表、元组、字典

        字符串看上去像一个容器类型,因为它“包含”字符,不过由于Python并没有字符类型,所以字符串是一个自我包含的文字类型。

 

二:更新模型

        根据对象创建成功之后,它的值是否可以更新,分为可变对象和不可变对象。可变对象允许他们的值被更新,而不可变对象则不允许他们的值被更改。下表列出了支持更新和不支持更新的类型。

分类

Python类型

可变类型

列表,字典

不可变类型

数字、字符串、元组

 

三:访问模式

        区分数据类型的首要模式是访问模式,也就是说根据访问存储的数据的方式对数据类型进行分类。在访问模式中共有三种访问方式:直接访问,顺序,和映射。下表按访问方式对数据类型进行了分类。

 

分类

Python类型

直接访问

数字

顺序访问

字符串、列表、元组

映射访问

字典


        对非容器类型可以直接访问。所有的数值类型都归到这一类。

        序列类型是指容器内的元素按从0开始的索引顺序访问。一次可以访问一个元素或多个元素(切片)。字符串,列表和元组都归到这一类。

        映射类型类似序列的索引属性,不过它的索引并不使用顺序的数字偏移量取值, 它的元素无序存放, 通过一个唯一的key来访问,这就是映射类型,它容纳的是哈希键-值对的集合。