0%

Python高级编程第2版PDF下载

《Python高级编程第2版》

链接: https://pan.baidu.com/s/1tSk97zVE1iDboX9BJ1D_Rw 提取码: 62qy

Python是一门动态编程语言,它简单而又强大,适用于众多领域。尽管编写Python代码比较容易,但是编写高效且易于维护和复用的代码是一个挑战。

本书的重点是让你熟悉实践、有用的工具以及标准,这都是Python专业人士每天使用的。首先,你将了解Python 3.5中新增加的功能以及可以提高生产力的快速技巧。接下来,你将学习使用这个新版本中的高-级且有用的Python语法元素,以及实现元编程的不同方法。本书讲解了代码管理工具、编写清晰文档的方法和测试驱动开发,这些都是编写代码的重要因素。通过学习优化的一般原则、查找瓶颈的策略以及应用优化的选定工具,你可以对如何编写高效的代码有更深入的理解。

读完本书后,你会成为一名可以编写高效且可维护代码的专家。

通过阅读本书,你将能够:

了解在Python社区中广泛采用的约定和实践;

高效打包Python代码,以便将其应用于社区和生产;

应用在远程系统上自动化部署代码的简单且轻量的方法;

提高代码的质量、可靠性及性能;

在Python中编写并发代码;

使用其他语言编写的代码来扩展Python。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397

目录

第1章 Python现状 1

1.1 Python的现状与未来 1

1.2 Python升级及其原因 2

1.3 追踪Python最新变化——PEP文档 2

1.4 当前Python 3的普及程度 3

1.5 Python 3和Python 2的主要差异 4

1.5.1 为什么要关注这些差异 4

1.5.2 主要的语法差异和常见陷阱 4

1.5.3 用于保持跨版本兼容性的常用工具和技术 6

1.6 不只是CPython 9

1.6.1 为什么要关注Python实现 10

1.6.2 Stackless Python 10

1.6.3 Jython 10

1.6.4 IronPython 11

1.6.5 PyPy 11

1.7 Python开发的现代方法 12

1.8 应用层Python环境隔离 13

1.8.1 为什么要隔离 14

1.8.2 常用解决方案 15

1.8.3 选择哪种工具 18

1.9 系统级环境隔离 19

1.9.1 使用Vagrant的虚拟开发环境 20

1.9.2 容器化与虚拟化的对比 21

1.10 常用的生产力工具 21

1.10.1 自定义Python shell— IPython、bpython、 ptpython等 22

1.10.2 交互式调试器 24

1.11 有用的资源 25

1.12 小结 25

第2章 语法最佳实践——类级别以下 26

2.1 Python的内置类型 26

2.1.1 字符串与字节 27

2.1.2 集合类型 30

2.2 高级语法 39

2.2.1 迭代器 40

2.2.2 yield语句 41

2.2.3 装饰器 44

2.2.4 上下文管理器—with语句 54

2.3 你可能还不知道的其他语法元素 58

2.3.1 for...else...语句 58

2.3.2 函数注解 59

2.4 小结 60

第3章 语法最佳实践—类级别以上 61

3.1 子类化内置类型 61

3.2 访问超类中的方法 63

3.2.1 Python 2中的旧式类与super 65

3.2.2 理解Python的方法解析顺序 66

3.2.3 使用super易犯的错误 70

3.2.4 最佳实践 73

3.3 高级属性访问模式 73

3.3.1 描述符 74

3.3.2 property 79

3.3.3 槽 81

3.4 元编程 82

3.4.1 装饰器— 一种元编程方法 83

3.4.2 类装饰器 83

3.4.3 使用__new__()方法覆写实例创建过程 85

3.4.4 元类 87

3.4.5 一些关于代码生成的提示 94

3.5 小结 100

第4章 选择好的名称 101

4.1 PEP 8与命名最佳实践 101

4.1.1 为何要遵守PEP 8以及何时遵守PEP 8 101

4.1.2 超越PEP 8—团队的风格指南 102

4.2 命名风格 102

4.3 命名指南 110

4.3.1 用“has”或“is”前缀命名布尔元素 111

4.3.2 用复数形式命名集合变量 111

4.3.3 用显式名称命名字典 111

4.3.4 避免通用名称 111

4.3.5 避免现有名称 112

4.4 参数的最佳实践 113

4.4.1 通过迭代设计构建参数 113

4.4.2 信任参数和测试 114

4.4.3 小心使用*args和**kwargs魔法参数 115

4.5 类的名称 117

4.6 模块和包的名称 117

4.7 有用的工具 118

4.7.1 Pylint 118

4.7.2 pep8和flake8 120

4.8 小结 120

第5章 编写一个包 121

5.1 创建一个包 121

5.1.1 Python打包工具的混乱状态 122

5.1.2 项目配置 123

5.1.3 自定义setup命令 131

5.1.4 在开发期间使用包 132

5.2 命名空间包 133

5.2.1 为什么有用 133

5.2.2 PEP 420—隐式命名空间包 135

5.2.3 以前Python版本中的命名空间包 136

5.3 上传一个包 137

5.3.1 PyPI—Python包索引 137

5.3.2 源代码包与构建包 139

5.4 独立可执行文件 142

5.4.1 独立可执行文件何时有用 143

5.4.2 常用工具 143

5.4.3 可执行包中Python代码的安全性 150

5.5 小结 151

第6章 部署代码 152

6.1 十二要素应用 152

6.2 用Fabric进行自动化部署 154

6.3 你自己的包索引或索引镜像 158

6.3.1 PyPI镜像 159

6.3.2 使用包进行部署 160

6.4 常见约定与实践 168

6.4.1 文件系统层次结构 168

6.4.2 隔离 168

6.4.3 使用进程管理工具 169

6.4.4 应该在用户空间运行应用代码 170

6.4.5 使用HTTP反向代理 171

6.4.6 优雅地重新加载进程 171

6.5 代码检测与监控 172

6.5.1 记录错误—sentry/raven 173

6.5.2 监控系统与应用指标 175

6.5.3 处理应用日志 177

6.6 小结 181

第7章 使用其他语言开发Python扩展 182

7.1 使用C或者C++编写扩展 182

7.2 为什么你想用扩展 184

7.2.1 提高关键代码段的性能 185

7.2.2 集成现有的使用不同语言编写的代码 185

7.2.3 集成第三方动态库 185

7.2.4 创建自定义数据类型 186

7.3 编写扩展 186

7.3.1 纯C扩展 187

7.3.2 Cython 201

7.4 挑战 205

7.4.1 额外的复杂性 205

7.4.2 调试 206

7.5 无扩展的动态库接口 206

7.5.1 ctypes 207

7.5.2 CFFI 212

7.6 小结 214

第8章 管理代码 215

8.1 版本控制系统 215

8.1.1 集中式系统 215

8.1.2 分布式系统 217

8.1.3 集中式还是分布式 219

8.1.4 尽可能使用Git 219

8.1.5 Git工作流程与GitHub工作流程 220

8.2 持续的开发过程 223

8.2.1 持续集成 224

8.2.2 持续交付 227

8.2.3 持续部署 227

8.2.4 常用的持续集成工具 228

8.2.5 选择正确的工具和常见的陷阱 234

8.3 小结 236

第9章 文档化你的项目 237

9.1 7项技术写作规则 237

9.1.1 两步写作 238

9.1.2 定位读者 238

9.1.3 使用简单的风格 239

9.1.4 限制信息范围 240

9.1.5 使用现实中的代码示例 240

9.1.6 使用轻量且充分的方法 241

9.1.7 使用模板 241

9.2 reStructuredText入门 242

9.2.1 章节结构 243

9.2.2 列表 245

9.2.3 行内标记 246

9.2.4 文字块 246

9.2.5 链接 247

9.3 构建文档 248

9.4 构建自己的文档集 254

9.4.1 构建格局 254

9.4.2 文档构建与持续集成 259

9.5 小结 260

第10章 测试驱动开发 261

10.1 我不测试 261

10.1.1 测试开发的原则 261

10.1.2 什么样的测试 265

10.1.3 达式Python标准测试工具 268

10.2 我做测试 273

10.2.1 unittest陷阱 273

10.2.2 unittest的替代品 274

10.2.3 测试覆盖率 280

10.2.4 仿真与模拟 282

10.2.5 测试环境与依赖兼容性 289

10.2.6 文档驱动开发 292

10.3 小结 294

第11章 优化——一般原则与分析技术 295

11.1 3个优化规则 295

11.1.1 首先要能工作 295

11.1.2 从用户的角度考虑 296

11.1.3 保持代码的可读性和可维护性 297

11.2 优化策略 297

11.2.1 找到另外的罪魁祸首 297

11.2.2 扩展硬件 298

11.2.3 编写速度测试 298

11.3 查找瓶颈 299

11.3.1 分析CPU使用情况 299

11.3.2 分析内存使用 307

11.3.3 分析网络使用情况 315

11.4 小结 316

第12章 优化——一些强大的技术 317

第13章 并发 339

第14章 有用的设计模式 376


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------