|
|
|
|
移动端

目录

《Python高级编程(第2版)》本书基于Python 3.5版本进行讲解,通过13章的内容,深度揭示了Python编程的高级技巧。本书从Python语言及其社区的现状开始介绍,对Python语法、命名规则、Python包的编写、部署代码、扩展程序开发、管理代码、文档编写、测试开发、代码优化、并发编程、设计模式等重要话题进行了全面系统化的讲解。 本节为目录。

作者:张亮/阿信 译来源:人民邮电出版社|2018-01-29 17:22

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


目录

第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 8101
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 ctypes207
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
12.1 降低复杂度318
12.1.1 循环复杂度.319
12.1.2 大O 记法320
12.2 简化322
12.3 使用集合模块323
12.3.1 deque...324
12.3.2 defaultdict ...325
12.3.3 namedtuple..326
12.4 架构体系的权衡327
12.4.1 使用启发式和近似
算法327
12.4.2 使用任务队列和延迟
处理328
12.4.3 使用概率型数据结构.331
12.5 缓存331
12.5.1 确定性缓存.332
12.5.2 非确定性缓存.335
12.5.3 缓存服务336
12.6 小结338
第13 章 并发.339
13.1 为什么需要并发339
13.2 多线程340
13.2.1 什么是多线程.340
13.2.2 Python 如何处理多
线程341
13.2.3 何时应该使用多线程..342
13.3 多进程356
13.4 异步编程364
13.4.1 协同多任务与异步I/O.364
13.4.2 Python 中的async 和
await 关键字365
13.4.3 老Python 版本中的
asyncio369
13.4.4 异步编程实例.369
13.4.5 使用futures 将异步
代码同步化.372
13.5 小结374
第14 章 有用的设计模式.376
14.1 创建型模式376
14.2 结构型模式379
14.2.1 适配器380
14.2.2 代理394
14.2.3 外观395
14.3 行为模式395
14.3.1 观察者396
14.3.2 访问者398
14.3.3 模板400
14.4 小结403


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

程序员密码学

《程序员密码学》涉及密码学的各个研究方向,分组密码、散列函数、公钥密码以及相关的攻击,同时也讲解了密码学算法实现上常用的ASN.编码、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊