一、Python对象
所有的Python对象都拥有三个特征:身份,类型。值
- 身份:可以被认为是该对象的内存地址,使用内建函数id()来得到
- 类型:使用type()查看
- 值:对象表示的数据项
二、标准类型
Integer、Boolean、Long integer、Floating point real number、Complex number、String、List、Tuple、Dicionary
三、其他类型
类型、Null对象(None)、文件、集合/固定集合、函数/方法、模块、类
四、内部类型
- 代码对象:编译过的Python源代码片段,可执行对象。通过调用compile()可以得到代码对象,代码对象可以被exec命令或eval()函数来执行
- 帧对象:表示Python的执行栈帧。可用于跟踪记录对象
- 跟踪记录对象:报错时的诊断信息
- 切片对象
- 省略对象:唯一的名字Ellipsis,它的值始终为True
五、标准类型操作符
- 对象值的比较:所有的内建类型均支持比较运算,比较操作是针对对象的值进行的,也就是说比较的是对象的数值而不是对象本身
- 对象身份的比较:
- fool1和fool2指向相同的对象:
- fool1 = fool2 = 4.3
- fool1 = 4.3; fool2 = fool1
- fool1和fool2指向不同的对象:
- fool1 = 4.3; fool2 = 1.3 + 3.0
- Python提供了is和is not操作符来测试两个变量是否指向同一个对象:a is b 等价于 id(a) == id(b)
- fool1和fool2指向相同的对象:
- 布尔类型
六、标准类型内建函数
cmp(obj1, obj2):比较obj1和obj2, 根据比较结果返回整型i:
- i < 0 if obj1 < obj2
- i > 0 if obj1 > obj2
- i = 0 if obj1 == obj2
type(obj):接受一个对象作为参数,并返回它的类型
isinstance():
七、类型工厂函数
八、标准类型分类:
按存储模型分类:
- 标量/原子类型:数值、字符串
- 容器类型:列表、元组、字典、集合
按更新模型分类:
- 可变类型:列表、字典、集合
- 不可变类型: 数字、字符串、元组
注:列表(可变类型)的值不论怎么变,它的ID始终保持不变
按访问模型分类:
- 直接访问:数值
- 顺序访问:字符串,列表,元组
- 映射访问:字典,集合