您的位置:首页 > 编程语言 > Python开发

Python学习之路7——Python对象

2015-03-17 21:53 253 查看

1.Python对象

Python使用对象模型来存储数据。构造任何类型的值都是一个对象。

所有的Python对象都拥有三个特性:身份,类型和值。

身份:每个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。

类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。可以用type()查看Python对象的类型。在Python中类型也是一个对象,所以type()返回的是对象而不是字符串。

值:对象表示的数据项。

2.标准类型

Integer 整数
Boolean 布尔型
Long integer 长整形
Floating point real number 浮点型
Complex number 复数型
String 字符串
List 列表
Tuple 元组
Dictionary 字典

3.其他内建类型

类型
Null对象
文件
集合/固定集合
函数/方法
模块


3.1 类型对象和type类型对象

类型存储着对象的一系列固有行为和特性等信息,而描述一种类型所需要的信息不可能用一个字符串来搞定,所以类型不能是一个简单的字符串。我们将类型定义成对象。接下来介绍type()函数,调用type()函数可以得到特定对象的类型信息。

>>> type(66)

<type 'int'>

>>>

type()返回的也不是一个字符串,继续看

>>> type(type(66))

<type 'type'>

>>>

所有的类型对象的类型都是type,它也是所有Python类型的根和所有Python标准类的默认元类(metaclass)。

3.2 None———Python的Null对象

Python中的None相当于C中的null。

4.内部类型

代码

跟踪记录
切片
省略
Xrange

4.1 代码对象

代码对象是编译过的Python源代码的片段,它是可执行对象。通过调用内建函数compile()可以得到代码对象。代码对象可以被exec命令或eval()函数来执行。

代码对象本身不包含任何执行环境信息,它是用户自定义函数的核心。在被执行时动态获得上下文。

4.2 帧对象

帧对象表示Python的执行栈帧。帧对象包含Python解释器在运行时所需要知道的所有信息。它的属性包括指向上一帧的链接,正在被执行的代码对象,本地及全局名称字典及当前指令等。每次函数调用产生一个新的帧,每个帧对象都会相应创建一个C栈帧。用到帧对象的一个地方是跟踪记录对象。

4.3 跟踪记录对象

代码出错时,Python就会引发一个异常。如果异常未被捕获和处理,解释器就会退出脚本运行并显示诊断信息。

>>> s[1]

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 's' is not defined

当异常发生时,一个包含针对异常的栈跟踪记录对象被创建。如果一个异常有自己的处理程序,处理程序就可以访问这个跟踪记录对象。

4.4 切片对象

当使用Python扩展的切片语法时,就会创建切片对象。(这里简单记一下,后面有更详细的切片介绍)

4.5 省略对象

省略对象拥有扩展切片语法中,起记号作用。省略队象有一个唯一的名字Ellipsis,它的布尔值始终为True。

用C中的语法来解释:

for (i = 100: : i ++)

do something

省略对象就是for语句中两个冒号之间省略的符号。

4.6XRange对象

调用XRange()函数会生成一个XRange对象,xrange是range的兄弟版本,用于需要节省内存使用或range()无法完成的超大数据集场合。

注:range() 介绍,用法为range(start,end),start默认为0,返回的是一个列表。下面是例子,一看就懂。

>>> range(1,10)

[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(10)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: