搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
无库存
Python进阶:实际应用开发实战
0.00     定价 ¥ 129.00
泸西县图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787111701040
  • 作      者:
    [英]马修·威尔克斯(Matthew Wilkes)
  • 译      者:
    赵利通
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2022-01-01
收藏
荐购
编辑推荐

●本书按照构建一个真实软件的顺序,通过一个贯穿全书的示例,解释其他教程中一般不会讲解的各种Python语言特性:从利用入口点让可重用的控制台脚本成为微服务,一直到高效使用asyncio整理来自多个数据源的数据。在此过程中,本书将介绍基于类型提示的linting、低开销的测试,以及其他自动执行的质量检查,以演示真实的开发过程。


●通过阅读本书,你将了解以下内容:

Python异步编程。
插件架构。
如何使用类型注解。
Python相关测试技术。
打包和依赖项管理。


●具体而言:

第1章和第2章介绍开发环境和相关的工具;

第3~6章涵盖代码打包和依赖项分发、插件架构、接口、聚合服务器等实用内容;

第7章与第8章讨论线程和异步编程相关内容,以及一些高级主题;

第9~12章涉及可视化、调优、错误处理以及数据分析相关主题。


●本书提供示例代码下载,读者可访问本书GitHub页面https://github.com/MatthewWilkes/advanced-python-development.git,签出Git存储库并按照本书内容一步步学习。

展开
作者简介

马修-威尔克斯
(Matthew Wilkes)
一名经验丰富的开发人员,他使用Python开发Web项目已经有15年了。除了开发软件外,他还长期为Python开发人员提供指导,积极推动开源软件的发展,并为许多流行的框架提交过代码。他对开源软件的贡献主要集中在数据库的细节以及Web框架的安全交互方面。

展开
目录

●第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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录

点击获取验证码
登录