类陷阱 579 修改类属性的副作用 多重继承:顺序很重要 类、方法以及嵌套作用域 过度包装 583 本章小结 头脑风暴 本章习题 习题解答 585 头脑风暴:第六部分练习题 586 第七部分异常和工具 第27章异常基础 595 为什么使用异常 异常的角色 596 异常处理:简明扼要 597 try/ except/else语句…… try语句分句 try/else分句… 例子:默认行为 例子:捕捉内置异常 y/ finally语句 例子:利用try/ finally编写终止行为… st-try/except/finally 通过嵌套合并 finally?和 except…… 610 合并ty的例子 aise语句 例子:引发并捕捉用户定义的异常 .613 例子:利用 raIse传入额外的数据 613 例子:利用 raise传递异常 614 www.iopsage.com
www.TopSage.com
assert语句 …614 例子:收集约束条件(但不是错误) with/as环境管理器 616 基本使用 616 环境管理协议 617 为什么要在意:错误检查 本章小结 头脑风暴 621 本章习题 621 习题解答 第28章异常对象 基于字符串的异常 字符串异常就要出局了 基于类的异常 类异常例子 624 为什么使用类异常… 内置 Exception类 629 定义异常文本 630 发送额外数据和实例行为 631 ralse语句的一般形式 633 本章小结 头脑风暴 本章习题 习题解答 636 第29章异常的设计 637 嵌套异常处理器 637 例子:控制流程嵌套… 例子:语法嵌套化 639 常的习惯用法 641 异常不总是错误… 641 函数信号条件和 raise 641 dil目录 www.iopsage.com
www.TopSage.com
在ty外进行调试 运行进程中的测试 大 关于 sys. exc_info .644om 与异常有关的技巧 .644 应该包装什么…… 捕捉太多:避免空 except语句 捕捉过少:使用基于类的分类 …647 异常陷阱 字符串异常匹配是通过同一性而不是通过值…648 捕捉到错误的异常 649 核心语言总结… Python工具集… 大型项目的开发工具 本章小结 头脑风暴 655 本章习题 习题解答…… 头脑风暴:第七部分练习题 656 第八部分附录° 附录A安装和配置 附录B每部分练习题解答 ⊙第八部分附录内容请到华章网站(wwwabook.com)下载。 www.topsage.com 录
www.TopSage.com
前言 本书是学习 Python编程语言的入门书籍 Python是一种很流行的程序语言,可以作为独 立的程序和脚本在各种领域中应用。 Python免费、可移植、功能强大,而且使用起来相 当容易 无论你是编程初学者,还是专业开发人员,本书的目标是让你快速掌握核心 Python语言 基础。阅读本书后,会对 Python有足够的了解,能够将其应用于你所要从事的应用领域 关于第三版 本书第二版于2003年末出版,从那时到现在的四年中, Python语言本身已经发生了实质 性的变化,因此我在 Python培训课程中介绍的话题也随之发生了改变。虽然我试着尽可 能保留上一版的文字,但是本版书反映了 Python语言和 Python培训中发生的最新变化, 此外还有一些结构性的改变。 本书中 Python语言的变化 对于 Python语言,本书进行了全面更新,反映了 Python25以及从第二版出版以来语言 的所有变化(第二版大部分是基于 Python22,以及在 Python23版即将发布前提出的 Python23版的一些特性)。此外,还会在本书合适的地方讨论 Python30的预期的变 化。下面是这门语言的一些主要的主题,读者将会发现这些主题在本书中是全新的内容 或在原有基础上进行了扩展: 新的 B if A else c条件表达式(第12章)。 with/as环境管理器(第27章 www.iopsage.com
www.TopSage.com
统一try/ except/ finally(第27章)。 大彭两 相对导入语法(第21章)。 生成器表达式(第17章)。 OSAge. com 新的生成器函数的特性(第17章) 数装饰器(第26章)。 集合对象类型(第5章)。 新的内置函数: sorted、sum、any,al1, enumerate(第4章和第13章)。 小数固定精度对象类型(第5章)。 文件、列表解析( (list comprehension)和选代器等新的扩展内容(第13章和第17 新的开发工具: Eclipse、 distutils、 unittest和 doctest、IDLE加强版、 Shedskin等(第3章和第29章)。 贯穿本书始末都会讨论( Python语言的一些细微变化)(例如,广泛使用的True和 False、用新的 sys.exc info来获取异常的细节、基于字符串的异常的退出、字符串方 法、app1y和 reduce内置函数)。此外,有些在上一版中属于新的功能,也会在本书中进 行扩展,包括第三个限制值的分片运算,以及书中 apply的任意参数调用语法 本书中 Python培训的变化 除了 Python语言变化外,本书又增加了我最近几年开设的 Python培训课程中所介绍的新 主题和例子。例如,读者会发现: 全新的一章介绍内置类型(第4章)。 全新的一章介绍语句语法(第10章)。 全新的一章以加强涵盖的方式,介绍动态定型(第6章)。 详细的OOP介绍(第22章)。 文件、作用域、嵌套语句、类以及异常等更多的新例子。 很多新增的内容和变化都是考虑到 Python的初学者,有些主题则移到了培训课程中最恰 当的地方,在那里最易于吸收所学知识。例如,列表解析和迭代器,最初是和for循环 语句一起出现的,而不是和之后的函数工具一起出现的 2|前言 www.topsage.com
www.TopSage.com