python对象分类
1 python对象分类
所有的Python对象都拥有三个特性:身份,类型和值
- 身份: 每一个对象都有一个唯一的身份标识自己。任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址
- 类型: 对象的类型决定了对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。你可以内建type()查看对象的类型
-
值:对象表示的数据项
对象属性:某些对象有属性、值或相关联的执行代码。python用句点(.)标记法来访问属性。属性包括相应对象的名字。最常用的属性是函数和方法
2 对象类型
标准类型(Numeric, Sequence, Mapping)
- 数字(分为几个子类型,其中二个是整形)
- Interger 整型
- Long integer 长整型
- Boolean 布尔类型
- Float point real number 浮点型
- Complex number 复数型
- String 字符串
- List 列表
- Tuple 元组
- Dictionary 字典
其他类型对象(Internal, ...)
- 类型
- Null 对象(None)
- 文件
- 可变/不可 集合
- 函数/方法
- 模块
- 类
类型对象和type类型对象(Fundamental, ...)
对象的一系列固有行为和特性都是事先定义好,从这个角度来说,类型正是保存这些信息的最佳位置。描述一种类型所需要的信息不可以用一个字符串来搞定,所以类型不能是一个简单的字符串,也不能和数据保存在一起,所以用将类型定义成一个对象是最好的选择。
类型对象和type类型对象
对象的一系列固有行为和特性都是事先定义好,从这个角度来说,类型正是保存这些信息的最佳位置。描述一种类型所需要的信息不可以用一个字符串来搞定,所以类型不能是一个简单的字符串,也不能和数据保存在一起,所以用将类型定义成一个对象是最好的选择。
>>> type(2) <type 'int'> >>> type(int) <type 'type'> >>> type(type(1)) <type 'type'>
通过调用type()函数,能够得到特定对象的类型信息。从上述代码中我们可以知道,所有类型对象的类型都是type,它是所有python类型的根和所有python标准类型的默认元类(metaclass).
所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小,每个对象天生具有True
值或False
值,空对象,值为0的任何数字或者Null
对象None
的布尔值都是False。
下列对对象的布尔值是False:
- None
- False(布尔类型)
- 所有的值为零的数
- 0(整型)
- 0.0 (浮点型)
- 0L (长整型)
- 0.0+0.0j (复数)
''
空字符串- [] 空列表
- {} 空字典
- () 空元组
值不是上面列出来的任何值的对象的布尔值都是True
3 python对象特征
- 数字(整数,浮点数,二进制,分数等)
支持加法和乘法等 - 序列(字符串,列表,元组)
支持索引,分片和合并 - 映射(字典)
支持通过键的索引等 - 对象的类型告诉Python去执行什么样的任务。
- 集合是自成一体的一个分类(不会把键值映射到值,也没有逐位的排序顺序)。
1.不可变类型(数字,字符串,元组,不可变集合):不支持原处修改
2.可变类型(列表,字典,可变集合):可以通过操作原处修改,而不用创建新的对象
一般来说,不可变类型具有某种完整性,保证这个对象不会被程序的其他部分改变。
参考: