文件大小:138.86 MB
文件类型:pdf
发布时间:2022-12-31 18:17:17
需资源分:2
下载次数:2
Tag:PYTHON 手册
::资源简介::
PYTHON学习手册[第5版],1
封面,1
目录,7
前言,28
本书的生态系统,28
关于第5版,29
Python2.X与3.X系列,31
当今Python2.X/3.X的故事,31
对3.X和2.X的介绍,33
我应该选择哪个Python?,33
本书的必备知识与意图,34
本书的结构,36
本书不是什么,38
它不是一本参考手册,也不是一本特定领域应用程序的指南,38
它不是行色匆匆人们的一本快餐读物,38
它以Python原本的方式顺序展开,39
本书的程序,40
Python版本,40
平台,41
获取本书的代码,41
使用本书的代码,41
字体约定,42
书籍更新与资源,42
致谢,43
幕后故事,43
感谢Python,43
私人感谢,44
第一部分 使用入门,46
第1章 问答环节,48
人们为何使用Python,48
软件质量,49
开发者效率,50
Python是一门脚本语言吗,50
好吧,Python的缺点是什么,52
如今谁在使用Python,52
其他的Python设计权衡 一些难以把握的方面,53
使用Python可以做些什么,55
系统编程,55
图形用户界面[GUI],56
Internet脚本,56
组件集成,57
数据库编程,57
快速原型,58
数值计算和科学计算编程,58
更多内容 游戏_图像_数据挖掘_机器人_Excel等,58
Python如何开发并获得支持,59
开源的权衡,60
Python有哪些技术上的优点,60
面向对象和函数式,60
免费,61
可移植,61
功能强大,62
可混合,63
相对简单易用,63
相对简单易学,64
以Monty Python命名,64
Python和其他语言比较起来怎么样,65
本章小结,66
本章习题,66
习题解答,67
Python是工程,不是艺术,68
第02章 Python如何运行程序,70
Python解释器简介,70
程序执行,72
程序员的视角,72
Python的视角,73
执行模型的变体,75
Python的各种实现,76
执行优化工具,79
冻结二进制文件,80
未来的可能性,81
本章小结,82
本章习题,82
习题解答,83
第03章 你应如何运行程序,84
交互式命令行模式,84
开始一个交互式会话,84
Windows平台上的交互式命令行在哪里,86
系统路径,86
Python3.3中的新Windows选项 PATH和启动器,87
运行的位置 代码目录,88
不需要输入的内容 提示符和注释,89
交互式地运行代码,90
为什么要使用交互式命令行模式,91
使用注意 交互命令行模式,92
系统命令行和文件,94
第一段脚本,95
使用命令行运行文件,96
不同的命令行使用方式,97
使用注意 命令行和文件,98
UNIX风格可执行脚本 #!,99
UNIX脚本基础,99
UNIX env查找技巧,100
Python3.3 Windows启动器 Windows也有#!了,100
点击文件图标,102
图标点击基础知识,102
在Windows上点击图标,103
Windows上输入的技巧,104
其他图标点击的限制,106
模块导入和重载,106
导入和重载基础知识,107
模块的宏观视角属性,109
使用注意import和reload,112
使用exec运行模块文件,112
IDLE用户界面,113
IDLE启动细节,114
IDLE基础用法,115
IDLE功能特性,116
高级IDLE工具,117
使用注意IDLE,117
其他IDE,119
其他启动选项,120
嵌入式调用,120
冻结二进制可执行文件,121
文本编辑器启动方式,121
其他的启动方式,122
未来的可能,122
应该选用哪种方式,122
调试Python代码,123
本章小结,124
本章习题,124
习题解答,125
第一部分练习题,126
第二部分 类型和运算,129
第04章 介绍Python对象类型,132
Python知识结构,132
为什么要使用内置类型,133
Python核心数据类型,134
数字,135
字符串,137
序列操作,137
不可变性,139
特定类型的方法,140
寻求帮助,142
字符串编程的其他方式,143
Unicode字符串,144
模式匹配,146
列表,147
序列操作,147
特定的操作,148
边界检查,148
嵌套,149
推导,149
字典,152
映射操作,152
重访嵌套,153
不存在的键 if测试,155
键的排序 for循环,156
迭代和优化,158
元组,159
为什么要使用元组,160
文件,160
二进制字节文件,161
Unicode文本文件,162
其他类文件工具,164
其他核心类型,164
如何破坏代码的灵活性,166
用户定义的类,167
剩余的内容,168
本章小结,168
本章习题,168
习题解答,169
第05章 数值类型,170
数值类型基础知识,170
数值字面量,171
内置数值工具,173
Python表达式运算符,173
数字的实际应用,178
变量与基础表达式,178
数值的显示格式,180
str和repr显示格式,181
普通比较与链式比较,181
除法 经典除法_向下取整除法和真除法,183
整数精度,187
复数,187
十六进制_八进制和二进制 字面量与转换,188
按位操作,190
其他内置数值工具,191
其他数值类型,194
小数类型,194
分数类型,196
集合,200
布尔型,207
数值扩展,208
本章小结,209
本章习题,209
习题解答,209
第06章 动态类型,211
缺少声明语句的情况,211
变量_对象和引用,211
类型属于对象而不是变量,213
对象的垃圾收集,214
关于Python垃圾回收的更多讨论,215
共享引用,216
共享引用和在原位置修改,217
共享引用和相等,219
动态类型随处可见,220
弱引用,221
本章小结,221
本章习题,221
习题解答,222
第07章 字符串基础,223
本章范围,223
Unicode简介,224
字符串基础,224
字符串字面量,226
单引号和双引号字符串是一样的,227
转义序列代表特殊字符,227
原始字符串阻止转义,230
三引号编写多行块字符串,232
实际应用中的字符串,233
基本操作,233
索引和分片,234
请留意分片,238
字符串转换工具,239
修改字符串I,241
字符串方法,243
方法调用语法,243
字符串的方法,244
字符串方法示例修改字符串Ⅱ,245
字符串方法示例解析文本,247
实际应用中的其他常见字符串方法,247
原始string模块的函数[在Python3.X中删除],248
字符串格式化表达式,250
格式化表达式基础,251
高级格式化表达式语法,252
高级格式化表达式举例,253
基于字典的格式化表达式,254
字符串格式化方法调用,255
字符串格式化方法基础,255
添加键_属性和偏移量,256
高级格式化方法语法,257
高级格式化方法举例,258
与%格式化表达式比较,260
为什么使用格式化方法,263
通用类型分类,268
同一分类中的类型共享同一个操作集,268
可变类型能够在原位置修改,269
本章小结,269
本章习题,270
习题解答,270
第08章 列表与字典,272
列表,272
列表的实际应用,275
基本列表操作,275
列表迭代和推导,275
索引_分片和矩阵,276
原位置修改列表,277
字典,283
字典的实际应用,285
字典的基本操作,285
原位置修改字典,286
其他字典方法,287
示例 电影数据库,289
字典用法注意事项,290
创建字典的其他方式,294
请留意字典vs列表,295
Python3.X和2.7中的字典变化,296
请留意字典接口,303
本章小结,304
本章习题,304
习题解答,304
第09章 元组_文件与其他核心类型,306
元组,307
元组的实际应用,308
为什么有了列表还要元组,310
重访记录 有名元组,311
文件,313
打开文件,314
使用文件,315
文件的实际应用,316
文本和二进制文件 一个简要的故事,317
在文件中存储Python对象转换,318
存储Python原生对象pickle,320
用JSON格式存储Python对象,321
存储打包二进制数据struct,323
文件上下文管理器,324
其他文件工具,324
核心类型复习与总结,326
请留意运算符重载,327
对象灵活性,327
引用vs复制,328
比较_等价性和真值,330
Python中True和False的含义,334
Python的类型层次,336
类型的对象,336
Python中的其他类型,338
内置类型陷阱,338
赋值创建引用,而不是复制,338
重复会增加层次深度,339
注意循环数据结构,340
不可变类型不可以在原位置改变,340
本章小结,341
本章习题,341
习题解答,342
第二部分练习题,342
第三部分 语句和语法,345
第10章 Python语句简介,348
重温Python的知识结构,348
Python的语句,349
两种不同的if,351
Python增加的元素,352
Python删除的元素,352
为什么采用缩进语法,354
几种特殊情况,356
简短示例 交互式循环,358
一个简单的交互式循环,358
对用户输入做数学运算,360
通过测试输入数据来处理错误,361
用try语句处理错误,362
嵌套三层深的代码,364
本章小结,365
本章习题,365
习题解答,365
第11章 赋值_表达式和打印,367
赋值语句,367
赋值语句形式,368
序列赋值,369
Python3.X中的扩展序列解包,372
多目标赋值,376
增量赋值,377
变量命名规则,380
Python中的废弃协议,382
表达式语句,383
表达式语句和原位置修改,385
打印操作,385
Python3.X的print函数,386
Python2.X的print语句,389
打印流重定向,390
版本中立的打印,394
为什么你要注意print和stdout,396
本章小结,397
本章习题,397
习题解答,397
第12章 if测试和语法规则,399
if语句,399
一般形式,399
基础示例,400
多路分支,400
复习Python语法规则,402
代码块分隔符 缩进规则,404
语句分隔符 行与行间连接符,405
一些特殊情况,406
真值和布尔测试,408
if/else三元表达式,410
请留意布尔值,411
本章小结,413
本章习题,413
习题解答,413
第13章 while循环和for循环,414
while循环,414
一般形式,414
示例,415
break_continue_pass和循环的else,416
一般循环形式,416
pass,416
continue,418
break,418
循环的else,419
请留意仿真C语言的while循环,420
for循环,421
一般形式,421
示例,422
请留意文件扫描器,427
编写循环的技巧,429
计数器循环range,429
序列扫描while和range vs for,430
序列乱序器range和len,431
非穷尽遍历range vs分片,432
修改列表range vs推导,433
并行遍历zip和map,434
同时给出偏移量和元素 enumerate,437
请留意shell命令及其他,438
本章小结,441
本章习题,441
习题解答,441
第14章 迭代和推导,443
迭代器初次探索,444
迭代协议文件迭代器,444
手动迭代iter和next,447
其他内置类型可迭代对象,450
列表推导初次深入探索,452
列表推导基础,453
在文件上使用列表推导,454
扩展的列表推导语法,455
其他迭代上下文,457
Python3.X新增的可迭代对象,462
对Python2.X版本代码的影响 利与弊,462
range可迭代对象,463
map_zip和filter可迭代对象,464
多遍迭代器vs单遍迭代器,466
字典视图可迭代对象,467
其他迭代话题,468
本章小结,469
本章习题,469
习题解答,469
第15章 文档,471
Python文档资源,471
#注释,472
dir函数,472
文档字符串_doc_,474
PyDoc help函数,477
PyDoc HTML报告,480
改变PyDoc的颜色,483
超越文档字符串Sphinx,488
标准手册集,489
网络资源,490
已出版的书籍,490
常见代码编写陷阱,490
本章小结,492
本章习题,493
习题解答,493
第三部分练习题,494
第四部分 函数和生成器,497
第16章 函数基础,500
为何使用函数,501
编写函数,502
def语句,503
def语句执行于运行时,504
第一个示例_定义和调用,505
定义,505
调用,505
Python中的多态,506
第二个示例_寻找序列的交集,507
定义,507
调用,508
重访多态,509
局部变量,509
本章小结,510
本章习题,510
习题解答,510
第17章 作用域,512
Python作用域基础,512
作用域细节,513
变量名解析LEGB规则,515
作用域实例,517
内置作用域,518
打破Python2.X的小宇宙,521
global语句,521
程序设计最少化全局变量,522
程序设计最小化跨文件的修改,524
其他访问全局变量的方式,525
作用域和嵌套函数,526
嵌套作用域的细节,527
嵌套作用域举例,527
工厂函数闭包,528
使用默认值参数来保存外层作用域的状态,530
Python3.X中的nonlocal语句,534
nonlocal基础,535
nonlocal应用,536
为什么选nonlocal状态保持备选项,538
nonlocal变量的状态仅适用于Python3.X,538
全局变量的状态只有一份副本,539
类的状态 显式属性[预习],540
函数属性的状态 Python3.X和Python2.X的异同,541
请留意定制open,543
本章小结,545
本章习题,545
习题解答,547
第18章 参数,548
参数传递基础,548
参数和共享引用,549
避免修改可变参数,551
模拟输出参数和多重结果,552
特殊的参数匹配模式,553
参数匹配基础,553
参数匹配语法,554
更深入的细节,555
关键字参数和默认值参数的示例,556
可变长参数的实例,559
Python3.X的keyword-only参数,563
min提神小例,566
满分,567
附加分,568
结论,569
通用set函数,569
模拟Python3.X print函数,571
使用keyword-only参数,573
请留意 关键字参数,574
本章小结,575
本章习题,575
习题解答,576
第19章 函数的高级话题,577
函数设计概念,577
递归函数,579
用递归求和,579
编码替代方案,580
循环语句vs递归,581
处理任意结构,582
函数对象属性和注解,585
间接函数调用一等对象,586
函数自省,587
函数属性,588
Python3.X中的函数注解,589
匿名函数lambda,591
lambda表达式基础,591
为什么使用lambda,593
如何[不]让Python代码变得晦涩难懂,595
作用域lambda也能嵌套,596
请留意lambda回调,597
函数式编程工具,597
在可迭代对象上映射函数map,598
选择可迭代对象中的元素filter,600
合并可迭代对象中的元素reduce,600
本章小结,602
本章习题,602
习题解答,602
第20章 推导和生成,604
列表推导与函数式编程工具,604
列表推导与map,605
使用filter增加测试和循环嵌套,606
示例 列表推导与矩阵,609
不要滥用列表推导 简单胜于复杂[KISS],611
请留意 列表推导和map,612
生成器函数与表达式,614
生成器函数 yield vs return,614
生成器表达式 当可迭代对象遇见推导语法,619
生成器函数vs生成器表达式,624
生成器是单遍迭代对象,626
Python3.3的yield from扩展,627
内置类型_工具和类中的值生成,628
实例_生成乱序序列,631
不要过度使用生成器明确胜于隐晦[EIBTI],636
示例 用迭代工具模拟zip和map,638
为什么你要注意 单遍迭代,643
推导语法总结,644
作用域及推导变量,644
理解集合推导和字典推导,646
集合与字典的扩展推导语法,647
本章小结,648
本章习题,648
习题解答,648
第21章 基准测试,650
计时迭代可选方案,650
自己编写的计时模块,651
3.3版本中新的计时器调用,654
计时脚本,655
计时结果,657
计时模块可选方案,660
其他建议,663
用timeit为迭代和各种Python计时,664
timeit基础用法,664
基准测试模块和脚本timeit,668
基准测试脚本结果,670
基准测试的更多乐趣,673
其他基准测试主题pystones,677
函数陷阱,678
局部变量是被静态检测的,678
默认值参数和可变对象,680
没有return语句的函数,682
其他函数陷阱,682
本章小结,683
本章习题,683
习题解答,683
第四部分练习题,684
第五部分 模块和包,687
第22章 模块 宏伟蓝图,690
为什么使用模块,691
Python程序架构,691
如何组织一个程序,692
导入和属性,692
标准库模块,694
import如何工作,694
1、搜索,695
2、编译[可选],695
3、运行,696
字节码文件Python3.2及以上版本的_pycache_,697
实际应用中的字节码文件模型,698
模块搜索路径,699
配置搜索路径,701
搜索路径的变化,701
sys.path列表,702
模块文件选择,703
第三方工具distutils,705
本章小结,705
本章习题,706
习题解答,706
第23章 模块代码编写基础,707
模块的创建,707
模块文件名,707
其他种类的模块,708
模块的使用,708
import语句,708
from语句,709
from*语句,709
导入只发生一次,710
import和from是赋值语句,711
import和from的等价性,712
from语句潜在的陷阱,713
模块命名空间,714
文件产生命名空间,714
命名空间字典_dict_,716
属性名称的点号运算,716
导入与作用域,717
命名空间的嵌套,718
重新加载模块,719
reload基础,720
reload示例,721
请留意模块重新加载,722
本章小结,723
本章习题,723
习题解答,723
第24章 模块包,725
包导入基础,725
包和搜索路径设置,726
_init_.py包文件,727
包导入示例,729
包的from语句与包的import语句,730
为什么要使用包导入,731
三个系统的故事,732
请留意 模块包,734
包相对导入,735
Python3.X中的变化,735
相对导入基础知识,736
为什么使用相对导入,737
相对导入的适用情况,740
模块查找规则总结,740
相对导入的实际应用,741
包相对导入的陷阱混合使用,746
Python3.3中的命名空间包,751
命名空间包的语义,752
对常规包的影响 可选的_init_.py,753
命名空间包的实际应用,754
命名空间包嵌套,756
文件仍然优先于路径,757
本章小结,759
本章习题,759
习题解答,760
第25章 高级模块话题,761
模块设计概念,761
模块中的数据隐藏,763
使*的破坏最小化_X和_all_,763
启用未来语言特性_future_,764
混合使用模式_name_和_main_,765
以_name_进行单元测试,766
示例 双模式代码,767
货币符号Unicode的应用,770
文档字符串 模块文档的应用,772
修改模块搜索路径,773
import语句和from语句的as扩展,774
示例 模块即是对象,775
用名称字符串导入模块,777
运行代码字符串,778
直接调用两种方式,778
示例传递性模块重载译注1,779
递归重载器,779
另外的代码,783
模块陷阱,786
模块名称冲突 包和包相对导入,787
顶层代码中语句次序很重要,787
from复制名称而不是链接,788
from*会让变量含义模糊化,789
reload不能作用于from导入,789
reload_from以及交互式测试,790
递归形式的from导入可能无法工作,791
本章小结,792
本章习题,793
习题解答,793
第五部分练习题,793
第六部分 类和面向对象编程[OOP],816
第26章 OOP 宏伟蓝图,819
为何使用类,820
概览OOP,821
属性继承搜索,821
类和实例,823
方法调用,824
编写类树,824
运算符重载,826
OOP是关于代码重用,827
本章小结,830
本章习题,830
习题解答,831
第27章 类代码编写基础,832
类生成多个实例对象,832
类对象提供默认行为,833
实例对象是具体的元素,833
第一个示例,834
类通过继承进行定制,836
第二个示例,837
类是模块内的属性,838
类可以截获Python运算符,839
第三个示例,841
为什么要使用运算符重载,843
世界上最简单的Python类,843
重访记录类vs字典,846
本章小结,848
本章习题,849
习题解答,849
第28章 一个更加实际的示例,851
步骤1_创建实例,852
编写构造函数,852
在行进中测试,853
以两种方式使用代码,854
版本兼容性提示Prints,855
步骤2_添加行为方法,856
编写方法,858
步骤3_运算符重载,860
提供打印显示,860
步骤4_通过编写子类定制行为,862
编写子类,862
扩展方法不好的方式,863
扩展方法好的方式,863
如果使用super会怎么样呢,865
多态的应用,866
继承_定制和扩展,867
OOP 宏观理念,867
步骤5_定制构造函数,868
OOP比你认为的要简单,869
组合类的其他方式,870
在Python3.X中捕获内置属性,873
步骤6_使用内省工具,874
特殊的类属性,874
一种通用显示工具,876
实例vs类属性,877
工具类的命名要求,878
类的最终形式,879
步骤7_[最后一步]把对象存储到数据库中,880
pickle和shelve,881
在shelve数据库中存储对象,882
交互式地探索shelve,883
更新shelve中的对象,885
未来方向,886
本章小结,888
本章习题,889
习题解答,889
第29章 类代码编写细节,891
class语句,891
一般形式,892
示例,892
方法,894
示例,895
调用父类构造函数,896
其他方法调用的可能性,896
继承,897
属性树的构造,897
定制被继承的方法,898
类接口技术,899
抽象父类,900
命名空间 结论,903
简单名称 如果被赋值就不是全局的,903
属性名称 对象命名空间,904
Python命名空间之禅 赋值决定名称,904
嵌套的类重温LEGB作用域规则,907
命名空间字典 复习,909
命名空间链接一个类树爬升器,911
重访文档字符串,913
类vs模块,914
本章小结,915
本章习题,915
习题解答,916
第30章 运算符重载,917
基础知识,917
构造函数和表达式_init_和_sub_,918
常见的运算符重载方法,918
索引和分片_getitem_和_setitem_,921
拦截分片,921
Python2.X中的分片和索引,923
Python3.X中的_index_不是索引,924
索引迭代 _getitem,924
可迭代对象 _iter_和_next_,925
用户定义的可迭代对象,926
单个对象上的多个迭代器,929
编程备选方案_iter_加yield,932
成员关系_contains__iter_和_getitem_,936
属性访问_getattr_和_etattr_,939
属性引用,939
属性赋值和删除,940
其他属性管理工具,942
模拟实例属性的私有化第一部分,942
字符串显示_repr_和_str_,943
为什么需要两种显示方法,944
显示用例提要,946
右侧加法和原位置加法_radd_和_iadd_,947
右侧加法,947
原位置加法,951
调用表达式_call_,952
函数接口和基于回调的代码,953
比较运算_lt___gt_和其他方法,955
Python2.X中的_cmp_方法,956
布尔测试_bool_和_len_,957
Python2.X中的布尔方法,958
对象析构函数_del_,959
析构函数使用提要,960
本章小结,961
本章习题,961
习题解答,961
第31章 类的设计,963
Python和OOP,963
多态意味着接口不是函数调用签名,964
OOP和继承is-a关系,965
OOP和组合has-a关系,966
重访流处理器,968
请留意类和持久化,970
OOP和委托包装器代理对象,972
类的伪私有属性,973
名称重整概览,974
为什么使用伪私有属性,975
方法是对象绑定或未绑定,977
在Python3.X中未绑定方法是函数,979
绑定方法和其他可调用对象,980
请留意绑定方法的回调函数,982
类是对象一般对象的工厂,983
为什么使用工厂,984
多继承mix-in类,985
编写mix-in显示类,986
与设计相关的其他话题,1005
本章小结,1005
本章习题,1006
习题解答,1006
第32章 类的高级主题,1007
扩展内置类型,1008
通过内嵌方式扩展类型,1008
通过子类扩展类型,1009
新式类模型,1011
新式类新在哪里,1012
新式类变化,1013
内置属性的获取将跳过实例,1014
类型模型改变,1019
所有对象派生自object,1022
钻石继承改变,1024
深入讨论MRO 方法解析顺序,1028
示例_将属性映射到对应的继承源,1031
新式类扩展,1036
slot属性声明,1037
property 属性访问器,1046
_getattribute_和描述符属性工具,1049
其他的类改变和扩展,1050
静态方法和类方法,1050
为什么使用特殊方法,1051
Python2.X和Python3.X中的静态方法,1051
静态方法备选方案,1053
使用静态方法和类方法,1055
用静态方法计数实例,1056
用类方法计数实例,1057
装饰器和元类 第一部分,1060
函数装饰器基础,1061
初探用户定义函数装饰器,1063
初探类装饰器和元类,1064
更多的细节,1066
super内置函数更好还是更糟,1066
super引发的大论战,1067
传统的父类调用形式可移植_通用,1068
super的基础用法与折中,1069
super的优势 继承树的修改与分发,1074
运行时类修改与super,1075
协同多继承方法分发,1076
super总结,1087
类陷阱,1089
修改类属性可能会造成副作用,1089
修改可变类属性也可能产生副作用,1090
多继承 顺序很重要,1091
方法和类中的作用域,1092
其他类陷阱,1093
重温KISS法则过度包装,1094
本章小结,1095
本章习题,1095
习题解答,1095
第六部分练习题,1097
请留意大师眼中的OOP,1101
第七部分 异常和工具,1105
第33章 异常基础,1105
为什么使用异常,1106
异常的角色,1106
异常梗概,1107
默认异常处理器,1107
捕获异常,1108
引发异常,1109
用户定义的异常,1110
终止动作,1111
请留意 错误检查,1112
本章小结,1113
本章习题,1114
习题解答,1114
第34章 异常编写细节,1115
try/except/else语句,1115
try语句的工作方式,1116
try语句分句,1117
try else分句,1120
示例_默认行为,1120
示例_捕获内置异常,1122
try/finally语句,1122
示例_利用try/finally编写终止行为,1123
合并try/except/finally语句,1124
合并try语句的语法,1125
通过嵌套合并finally和except,1126
合并try语句的示例,1127
raise语句,1128
引发异常,1129
作用域和try except变量,1130
利用raise传递异常,1132
Python3.X异常链 raise from,1132
assert语句,1134
示例 捕获约束条件[但不是错误],1135
with/as上下文管理器,1136
基本用法,1136
上下文管理协议,1138
Python3.1_2.7及之后版本的多重上下文管理器,1139
本章小结,1141
本章习题,1142
习题解答,1142
第35章 异常对象,1143
异常回到未来,1144
字符串异常出局了,1144
基于类的异常,1145
编写异常类,1145
为什么使用异常层次结构,1147
内置异常类,1150
内置异常类别,1151
默认打印和状态,1152
定制的打印显示,1154
定制的数据和行为,1155
提供异常细节,1156
提供异常方法,1156
本章小结,1158
本章习题,1158
习题解答,1158
第36章 异常的设计,1160
嵌套异常处理程序,1160
示例 控制流嵌套,1161
示例 语法嵌套化,1162
异常的习惯用法,1164
跳出多重嵌套循环goto,1164
异常并不总是错误,1165
函数可以用raise语句触发状况,1165
断开文件和服务器连接,1166
使用外层try语句辅助调试,1167
运行进程中的测试,1168
关于sys.exc_info的更多内容,1169
显示错误和跟踪,1169
异常设计的建议与陷阱,1170
应该包装什么,1171
捕获了太多 避免空的except分句和Exception异常,1171
捕获过少 使用基于类的异常分类,1173
核心语言总结,1174
Python工具集,1174
大型项目的开发工具,1175
本章小结,1178
本章习题,1179
习题解答,1179
第七部分练习题,1179
第八部分 高级主题,1183
第37章 Unicode和字节串,1183
Python3.X中的字符串修改,1184
字符串基础知识,1185
字符编码方案,1185
Python是如何在内存中存储字符串的,1187
Python的字符串类型,1189
文本和二进制文件,1191
编写基本的字符串,1192
Python3.X的字符串字面量,1192
Python2.X的字符串字面量,1194
字符串类型转换,1195
编写Unicode字符串,1196
编写ASCII文本,1196
编写非ASCII文本,1197
编码和解码非ASCII文本,1198
其他编码方案,1199
字节串字面量 编码的文本,1200
转换编码,1202
在Python2.X中编写Unicode字符串,1202
源文件字符集编码声明,1205
使用Python3.X bytes对象,1207
方法调用,1207
序列运算,1208
创建bytes对象的其他方式,1209
混合字符串类型,1209
使用Python3.X/2.6+的bytearray对象,1210
实际使用中的bytearray,1211
Python3.X字符串类型小结,1213
使用文本文件和二进制文件,1213
文本文件基础,1214
Python2.X和3.X中的文本和二进制模式,1214
Python3.X中类型和内容不匹配,1216
使用Unicode文件,1217
在Python3.X中读写Unicode,1217
处理Python3.X中的BOM,1219
Python2.X中的Unicode文件,1222
Unicode文件名和流,1223
Python3.X中其他字符串工具修改,1224
re模式匹配模块,1224
struct二进制数据模块,1225
pickle对象序列化模块,1227
XML解析工具,1229
请留意检验文件及更多,1232
本章小结,1233
本章习题,1233
习题解答,1234
第38章 被管理的属性,1236
为什么需要被管理属性,1236
插入在属性被访问时运行的代码,1237
property,1238
基础知识,1238
第一个示例,1239
计算出的属性,1240
使用装饰器编写property,1241
描述符,1243
基础知识,1243
第一个示例,1246
计算出的属性,1248
在描述符中使用状态信息,1249
property和描述符之间的关系,1252
_getattr_和_getattribute,1254
基础知识,1255
第一个示例,1258
计算出的属性,1260
比较_getattr_和_getattribute_,1261
管理技术比较,1262
拦截内置运算属性,1265
示例 属性验证,1272
使用property验证,1273
使用描述符验证,1275
使用_getattr_验证,1279
使用_getattribute_验证,1281
本章小结,1282
本章习题,1282
习题解答,1283
第39章 装饰器,1285
什么是装饰器,1285
管理调用和实例,1286
管理函数和类,1286
使用和定义装饰器,1287
为什么使用装饰器,1287
基础知识,1288
函数装饰器,1288
类装饰器,1292
装饰器嵌套,1295
装饰器参数,1297
装饰器管理函数和类,1298
编写函数装饰器,1298
跟踪调用,1298
装饰器状态保持方案,1300
类错误一_对方法进行装饰,1304
对调用计时,1310
添加装饰器参数,1313
编写类装饰器,1316
单例类,1316
跟踪对象接口,1318
类错误二_保持多个实例,1322
装饰器vs管理器函数,1324
为什么使用装饰器[回顾],1325
直接管理函数和类,1326
示例 私有和公有属性,1329
实现私有属性,1329
实现细节一,1331
公有声明的推广,1333
实现细节二,1335
开放问题,1336
Python不是关于控制,1344
示例 验证函数参数,1344
目标,1344
针对位置参数的一个基本范围测试装饰器,1345
关键字和默认参数的推广,1347
实现细节,1350
开放问题,1352
装饰器参数vs函数注解,1354
其他应用_类型测试[如果你坚持],1356
本章小结,1358
本章习题,1358
习题解答,1359
第40章 元类,1368
勇敢面对还是知难而退,1369
提高魔法等级,1370
一门充满钩子的语言,1371
帮助函数的缺点,1372
元类vs类装饰器 第一回合,1374
要有魔法于是就出现了魔法,1376
元类模型,1376
类是类型的实例,1376
元类是Type的子类,1379
Class语句协议,1380
声明元类,1381
在Python3.X中声明,1381
在Python2.X中声明,1381
Python3.X和2.X中的元类分发,1382
编写元类,1383
一个基础的元类,1383
定制构建和初始化,1384
其他元类编程技巧,1385
继承与实例,1391
元类vs父类,1393
继承完整的故事,1394
元类方法,1400
元类方法vs类方法,1401
元类方法中的运算符重载,1401
示例 向类添加方法,1403
手动扩展,1403
基于元类的扩展,1404
元类vs类装饰器 第二回合,1406
示例 对方法应用装饰器,1411
用装饰器手动跟踪,1411
用元类和装饰器跟踪,1413
把任何装饰器应用于方法,1414
元类vs类装饰器 第三回合[决战],1415
本章小结,1418
本章习题,1419
习题解答,1419
第41章 一切美好的事物,1420
Python悖论,1420
关于可选的语言功能,1421
关于令人不安的改进,1422
复杂性vs功能性,1423
简洁性vs精英主义,1423
结束前的沉思,1424
下一站,1424
返场加演 打印你自己的完成证书,1425
第九部分 附录,1431
附录A 安装和配置,1431
附录B Python3.3的Windows启动器,1446
附录C Python变化与本书,1460
附录D 各部分练习题解答,1473
::下载地址::
>> 评论