Python 类型的分类

时间:2021-05-06 17:24:53

1、存储模型,对象可以保存多少个值。如果只能保存一个值,是原子类型。如果可以保存多个值,是容器类型。数值是原子类型,元组,列表,字典是容器类型。考虑字符串,按道理,字符串应该是容器类型,因为它包含多个字符。但是,Python中没有字符类型,也就是没有字符的概念,因此,把字符串归为原子类型。

2、更新模型,对象的值是否可以更新。Python彻底分离了引用和实体,比如a=1; b=a; b=2; 可以认为,a指向的内存内容不允许修改,现在b也指向这块内存,那么我要修改b,该怎么办呢?

  只能是重新分配一块内存,内容为2,然后修改b的指向,让b指向这块内存。a还是指向原来的内存,内容不变。

  思考,Python为什么要这样设计?

  这样设计有个好处,通过a传递给其他对象,不用担心a的值发生变化。如果要修改a的值,只能直接修改a,使它指向其它的内存。

3、访问模式,分为直接访问,顺序访问,映射访问。

 数据类型 存储模型   更新模型 访问模型 
 数值  原子类型  不可变  直接访问
 字符串  原子类型  不可变  顺序访问
 元组  容器  不可变  顺序访问
 列表  容器  可变  顺序访问
 字典  容器  可变  映射访问