Python进阶:实际应用开发实战

作者
[英]马修·威尔克斯(Matthew Wilkes)
丛书名
华章程序员书库
出版社
机械工业出版社
ISBN
9787111701040
简要
简介
内容简介书籍计算机书籍 本书的目标是介绍Python语言及其工具中并不是每个人都知道的部分。如果你是一名经验丰富的开发人员,则很可能已经知道本书要介绍的许多工具,但可能也有很多是你想要使用、但还没有时间了解的工具。如果你负责一个已建成的稳定系统,就更可能遇到这种情况,因为对于这样的系统,并不能够频繁地重构组件来利用新的语言特性。
目录
前言
致谢
审校者简介
第1章 原型设计和环境1
1.1 Python中的原型设计1
1.1.1 使用REPL设计原型2
1.1.2 使用Python脚本设计原型5
1.1.3 使用脚本和pdb设计原型6
1.1.4 使用Jupyter设计原型9
1.1.5 本章的原型设计11
1.2 环境设置13
1.3 创建新项目14
1.3.1 设计脚本原型15
1.3.2 安装依赖项18
1.4 导出到.py文件20
1.5 构建命令行接口22
1.5.1 sys模块和argv23
1.5.2 argparse24
1.5.3 click26
1.6 打破界限28
1.6.1 远程内核28
1.6.2 开发不能在本地运行的代码32
1.7 完成后的脚本34
1.8 小结36
更多资源36
第2章 测试、检查和linting37
2.1 测试40
2.1.1 何时编写测试42
2.1.2 创建格式化函数来提高可测试性43
2.1.3 pytest46
2.2 类型检查56
2.2.1 安装mypy57
2.2.2 添加类型提示58
2.2.3 子类和继承60
2.2.4 泛型类型62
2.2.5 调试以及过度使用类型64
2.2.6 何时使用类型,何时避免使用类型66
2.2.7 将类型提示与代码分离67
2.3 linting68
2.3.1 安装flake8和black69
2.3.2 修复现有代码70
2.3.3 自动运行71
2.3.4 拉取时运行73
2.4 小结74
更多资源75
第3章 打包脚本76
3.1 术语77
3.2 结构77
3.3 安装脚本和元数据80
3.4 依赖项80
3.5 声明式配置82
3.5.1 在setup.py中需要避免的事项82
3.5.2 使用setup.cfg86
3.6 自定义索引服务器88
3.6.1 创建pypiserver90
3.6.2 持久性91
3.6.3 保密性92
3.6.4 完整性92
3.6.5 wheel格式和在安装时执行代码93
3.7 使用入口点安装控制台脚本95
3.8 README、DEVELOP和CHANGES97
3.8.1 Markdown格式97
3.8.2 reStructuredText格式99
3.8.3 README101
3.8.4 CHANGES.md和版本化101
3.9 上游依赖项版本锁定103
3.9.1 宽松锁定103
3.9.2 严格锁定104
3.9.3 应该使用哪种锁定方案105
3.10 上传版本105
3.11 小结107
更多资源107
第4章 从脚本到框架109
4.1 编写传感器插件110
4.2 添加新的命令行选项113
4.2.1 子命令113
4.2.2 命令选项116
4.2.3 错误处理117
4.2.4 通过实参类型将解析工作
交给click120
4.2.5 自定义click实参类型121
4.2.6 常用选项123
4.3 允许使用第三方传感器插件124
4.3.1 使用固定名称检测插件126
4.3.2 使用入口点检测插件127
4.3.3 配置文件129
4.3.4 环境变量132
4.3.5 apd.sensors与类似程序的方法对比133
4.4 小结133
更多资源134
第5章 其他接口136
5.1 Web微服务136
5.1.1 WSGI137
5.1.2 API设计142
5.1.3 Flask144
5.1.4 Python装饰器146
5.1.5 测试视图函数157
5.1.6 部署159
5.2 将软件作为第三方软件扩展160
5.2.1 与其他开发人员就签名达成一致165
5.2.2 抽象基类167
5.2.3 后备策略170
5.2.4 综合运用174
5.3 修复代码中的序列化问题176
5.4 版本化API180
5.5 小结183
更多资源183
第6章 聚合过程185
6.1 cookiecutter185
6.2 创建聚合包189
6.2.1 数据库类型190
6.2.2 示例192
6.2.3 对象–关系映射器193
6.2.4 版本化数据库197
6.2.5 加载数据202
6.3 新技术209
6.3.1 数据库210
6.3.2 自定义特性行为210
6.3.3 生成器210
6.4 小结210
更多资源211
第7章 并行和异步212
7.1 非阻塞IO213
7.2 多线程与多进程218
7.2.1 低级线程219
7.2.2 字节码222
7.2.3 锁与死锁225
7.2.4 避免全局状态229
7.2.5 其他同步原语234
7.2.6 ProcessPoolExecutor241
7.2.7 使代码使用多线程241
7.3 asyncio242
7.3.1 async def242
7.3.2 await243
7.3.3 async for245
7.3.4 async with249
7.3.5 异步锁定原语249
7.3.6 使用同步库251
7.3.7 使代码异步化252
7.4 比较255
7.5 做出选择255
7.6 小结257
更多资源258
第8章 高级asyncio259
8.1 测试异步代码259
8.1.1 测试代码260
8.1.2 模拟对象以方便进行单元测试267
8.2 异步数据库276
8.2.1 经典SQLAlchemy风格277
8.2.2 使用run_in_executor280
8.2.3 查询数据282
8.2.4 避免复杂查询284
8.2.5 其他方案293
8.3 异步代码中的全局变量294
8.4 小结296
更多资源297
第9章 查看数据298
9.1 查询函数298
9.1.1 过滤数据303
9.1.2 多层迭代器306
9.1.3 其他过滤器312
9.1.4 测试查询函数313
9.2 显示多个传感器316
9.3 处理数据319
9.4 与Jupyter小部件进行交互323
9.4.1 增加嵌套的同步和异步代码324
9.4.2 进行整理329
9.5 持久端点330
9.6 绘制地图和地理数据330
9.6.1 新的图类型333
9.6.2 在apd.aggregation中支持地图类型的图335
9.6.3 使用新配置绘制自定义地图337
9.7 小结339
更多资源340
第10章 加快速度341
10.1 优化函数341
10.1.1 性能分析和线程343
10.1.2 解读profile报表345
10.1.3 其他性能分析器348
10.2 优化控制流352
10.2.1 可视化性能分析数据356
10.2.2 缓存360
10.3 小结369
更多资源369
第11章 容错371
11.1 错误处理371
11.1.1 从容器获取项372
11.1.2 自定义异常377
11.1.3 涉及多个异常的堆栈跟踪380
11.1.4 测试异常处理383
11.2 警告388
11.3 日志393
11.3.1 嵌套记录器394
11.3.2 自定义动作396
11.3.3 记录配置400
11.3.4 其他处理程序402
11.4 设计时规避问题402
11.5 小结407
更多资源408
第12章 回调与数据分析409
12.1 生成器的数据流409
12.1.1 使用自己的输出的生成器411
12.1.2 增强的生成器414
12.1.3 队列420
12.1.4 选择控制流422
12.2 动作的结构423
12.2.1 分析协程424
12.2.2 摄入数据429
12.2.3 运行分析进程432
12.3 进程状态434
12.4 扩展可用的动作439
12.5 小结441
更多资源442
后记443


相关资源(PDF,TXT,电子书)

村网 国学鼎 数字追踪 车牌号查询 生活分享
桂ICP备20004708号-2