一、Python对象
所有Python对象都拥有三个特性:
身份:每个对象都有一个唯一的身份标识自己,任何对象的身份可以通过id() 来得到,这个值可以被认为是该对象的内存地址。
类型:对象的类型决定了该对象可以保存什么类型的值。可以使用type() 来查看对象的类型。
值 :对象表示的数据项。
对象属性
某些Python对象有属性、值或相关联的可执行代码,比如方法。Python使用句点标记法来访问属性。最常用的属性是函数和方法,不过有一些Python类型也有数据属性。
二、标准类型
也称作“基本数据类型”
- 数字(分子类型,其中三个是整型)
- Integer 整型
- Boolean 布尔型
- Long integer 长整型
- Floating point real number 浮点型
- Complex number 复数型
- String 字符串
- List 列表
- Tuple 元组
- Dictinary 字典
三、其他内建类型
- 类型
- Null对象(None)
- 文件
- 集合/固定集合
- 函数/方法
- 模块
- 类
3.1 类型对象和type类型对象
类型是保存对象的一些固有行为和特性。
>>> type(10)
<type 'int'>
>>> type(type(10))
<type 'type'>
所有类型对象的类都是type, 它也是所有Python类型的根和所有Python标准类的默认元类。
3.2 None —— Python的Null对象
特殊类型Null对象,它只有一个值,就是None。不支持任何运算也没有内建方法。None没有什么有用的属性,它的布尔值总是False。
布尔值:
空对象、值为零的任何数字或Null对象None的布尔值都是False。比如:0 0.0 0L "" [] () {}
四、内部类型
- 代码
- 帧
- 跟踪记录
- 切片
- 省略
- Xrange
4.1 代码对象
代码对象是编译过的Python源代码片段,它是可执行对象。可以通过内建函数compile() 得到代码对象。代码对象可被exec命令或 eval() 内建函数来执行。
代码对象本身不包含任何执行环境信息,它是用户自定义函数的核心,在被执行时动态获得上下文。事实上代码对象是函数的一个属性,除此之外,函数还有其他属性:函数名、文档字符串、默认参数、全局命名空间等。
4.2 帧对象
帧对象包含Python解释器在运行时所需要知道的所有信息。它的属性包括指向上一帧的链接,正在被执行的代码对象,本地及全局名称空间字典及当前指令等。每次函数调用产生一个新的帧,每一个帧对象都会相应的创建一个C栈帧。用到帧对象的一个地方是跟踪记录对象。
4.3 跟踪记录对象
当代码出错