当前位置:主页 > 书籍配套资源 > Python配套资源
《Python应用开发实战》源码资源

《Python应用开发实战》源码资源

  • 更新:2021-08-05
  • 大小:72 MB
  • 类别:Python
  • 作者:(美)尼纳德·萨斯叶(Ninad、Sat
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

适读人群 :你已经了解Python语言的基础和面向对象编程吗? 你想更进一步钻研、学习技术来让你的Python应用更具健壮性、可扩展性并更加高效吗? 如果是这样的话,那么这本书就是为你量身打造的。
Python是使用广泛的动态编程语言之一。它支持一组丰富的库和框架,从而能够用来进行快速开发。但是,如此快速的开发通常会带来一些问题,容易导致代码整体质量、性能和扩展性的降低。本书将会教你如何处理这些问题,以及如何编写出更好的Python应用程序。

本书从简单命令行应用程序的基础知识入手,帮助读者不断提高技能,直到可以设计出高效的、高级的Python应用。本书使用轻松奇幻的学习主线,用具体解决方案来应对在复杂的Python开发中遇到的实际问题。读者从关注健壮性,以及程序代码的打包和发布开始,通过提高代码的可扩展性、可重用性以及可读性来提高应用程序的生命周期,并掌握Python代码重构、设计模式。在关于性能的章节中,读者学会识别性能瓶颈并提升性能,最后还将学习如何开发Python图形界面应用程序。

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

● 通过异常处理来创建健壮的应用程序。

● 源代码的模块化、打包和发布。

● 编写代码文档,实施代码规范。

● 在开发初期通过创建自动化测试发现程序漏洞。

● 识别并重构糟糕的代码以扩大应用的生命周期。

● 检测代码中重复出现的问题并使用设计模式。

● 通过识别性能瓶颈并修复问题来提高代码执行效率。

● 使用Python开发简单的图形界面应用程序。

内容简介

Python是使用较多的动态编程语言之一,应用广泛,学习者众多。

本书使用一个生动有趣的、基于文本的游戏主题作为讲解内容来介绍Python应用开发过程的各个方面。全书共10章,涉及简单应用开发、模块化、打包和发布应用的代码、文档规范、单元测试、重构、设计模式、性能监测、性能优化、GUI应用、MVC框架等方方面面的软件开发知识和技能。

本书适合有一定Python语言基础,想要快速掌握Python项目开发知识、提高Python开发实战技能的读者学习参考。

作者简介

在Ninad Sathaye的职业生涯中,他有多年使用包括Python和C++在内的多种语言设计和开发性能关键应用的经验。他曾是半导体行业中的一个软件架构师,最近又转入物联网领域。他拥有机械工程硕士学位。

目录

  • 第1章开发简单应用 1
  • 1.1 重要提示 2
  • 1.2 安装的先决条件 2
  • 1.2.1 安装Python 3
  • 1.3 本书的主题 8
  • 1.3.1 了解本书人物 8
  • 1.4 简单的脚本—兽人之袭
  • v0.0.1 9
  • 1.4.1 游戏简介—兽人之袭
  • v0.0.1 10
  • 1.4.2 问题说明 10
  • 1.4.3 伪代码—0.0.1版本 10
  • 1.4.4 代码查看 11
  • 1.4.5 运行兽人之袭v0.0.1 14
  • 1.5 使用函数—兽人之袭
  • v0.0.5 14
  • 1.5.1 重新回顾以前的版本 15
  • 1.5.2 有攻击功能的伪代码—版本0.0.5 17
  • 1.5.3 代码查看 19
  • 1.5.4 运行兽人之袭v0.0.5 21
  • 1.6 使用面向对象编程—兽人之袭v1.0.0 22
  • 1.6.1 功能需求的优先度 23
  • 1.6.2 问题说明 24
  • 1.6.3 重新设计代码 24
  • 1.6.4 描绘整个场景 25
  • 1.6.5 代码查看 27
  • 1.6.6 运行兽人之袭v1.0.0 31
  • 1.7 Python中的抽象基类 32
  • 1.7.1 练习 33
  • 1.8 小结 34
  • 1.8.1 对电子书读者非常重要的提示 34
  • 第2章异常处理 36
  • 2.1 修改兽人之袭v1.0.0 36
  • 2.1.1 问题调试 37
  • 2.1.2 bug修复中…… 38
  • 2.2 异常 39
  • 2.2.1 什么是异常 39
  • 2.2.2 最常见的异常 39
  • 2.2.3 异常处理 40
  • 2.2.4 异常的抛出和再抛出 42
  • 2.2.5 try...except的else代码块 43
  • 2.2.6 finally...清理吧 44
  • 2.3 回归游戏—兽人之袭
  • v1.1.0 45
  • 2.3.1 准备工作 45
  • 2.3.2 增加异常处理代码 46
  • 2.3.3 运行兽人之袭v1.1.0 47
  • 2.4 自定义异常 48
  • 2.4.1 准备工作 48
  • 2.4.2 自定义异常— 问题所在 49
  • 2.4.3 编写一个新的异常类 50
  • 2.4.4 扩展异常类 51
  • 2.4.5 继承exception类 53
  • 2.5 练习 55
  • 2.6 小结 56
  • 第3章 模块化、包和部署 57
  • 3.1 选择一种版本控制规约 58
  • 3.1.1 连续递增 58
  • 3.1.2 使用日期格式 59
  • 3.1.3 语义版本控制方案 59
  • 3.2 代码模块化 60
  • 3.2.1 兽人之袭v2.0.0 60
  • 3.3 创建Python包 62
  • 3.3.1 从包中录入 63
  • 3.4 在PyPI上发布包 64
  • 3.4.1 发行版本准备 65
  • 3.4.2 上传发行版 69
  • 3.4.3 一条命令完成所有的 事情 73
  • 3.4.4 安装你自己的发行版 73
  • 3.5 使用私有的PyPI仓库 75
  • 3.5.1 步骤1—安装 pypiserver 75
  • 3.5.2 步骤2—创建一个新的 源代码发行版 75
  • 3.5.3 步骤3—启动本地 服务器 76
  • 3.5.4 步骤4—安装私有 发行版 76
  • 3.6 创建增量发布 77
  • 3.6.1 打包并上传新版本 77
  • 3.6.2 升级已经安装的版本 77
  • 3.7 代码的版本控制 78
  • 3.7.1 Git资源 78
  • 3.7.2 安装Git 78
  • 3.7.3 配置你的验证信息 79
  • 3.7.4 Git基础术语 79
  • 3.7.5 创建并使用本地仓库 80
  • 3.8 使用Git的GUI客户端 83
  • 3.9 练习 84
  • 3.10 小结 85
  • 第4章 代码文档和最佳实践 86
  • 4.1 编写代码文档 87
  • 4.1.1 文档字符串 88
  • 4.1.2 reStructuredText简介 89
  • 4.1.3 使用RST的文档 字符串 92
  • 4.1.4 文档字符串格式化风格 94
  • 4.1.5 自动生成文档字符串 stubs 95
  • 4.1.6 使用Sphinx生成文档 97
  • 4.2 Python编码标准 103
  • 4.3 代码分析—我们做得 怎么样呢 105
  • 4.3.1 使用IDE进行代码 分析 105
  • 4.3.2 Pylint 106
  • 4.4 练习 110
  • 4.5 小结 110
  • 第5章 单元测试和重构 111
  • 5.1 本章的组织方式 111
  • 5.1.1 重要说明 112
  • 5.2 为何要进行测试 112
  • 5.2.1 提出了一个新的需求 112
  • 5.2.2 你实现了这个功能 113
  • 5.2.3 但是有些事情似乎 不对了…… 114
  • 5.2.4 它需要完全测试 115
  • 5.3 单元测试 115
  • 5.3.1 Python的unittest 框架 116
  • 5.4 为应用程序编写单元测试 121
  • 5.4.1 创建测试包 121
  • 5.4.2 为单元测试创建新 的类 122
  • 5.4.3 第1个单元测试— 受伤方的选择 123
  • 5.4.4 运行第1个单元测试 124
  • 5.4.5 第2个单元测试— 占领木屋 124
  • 5.4.6 创建自己的测试模块 127
  • 5.4.7 批量执行单元测试 127
  • 5.5 使用模拟库的单元测试 128
  • 5.5.1 Mock的简介 128
  • 5.5.2 让我们开始Mock吧 129
  • 5.5.3 在单元测试中使用Mock 对象 131
  • 5.5.4 使用补丁 133
  • 5.5.5 第3个单元测试— play方法 135
  • 5.6 你的代码被覆盖到了吗 139
  • 5.6.1 解决导入错误 140
  • 5.7 其他单元测试工具 141
  • 5.7.1 Doctest 141
  • 5.7.2 Nose 141
  • 5.7.3 Pytest 142
  • 5.8 重构的前言 142
  • 5.8.1 绕个弯路—可测试性重构 144
  • 5.9 重构 144
  • 5.9.1 什么是重构 145
  • 5.9.2 为什么要进行重构 145
  • 5.9.3 何时进行重构 145
  • 5.9.4 如何进行重构 146
  • 5.9.5 移动 148
  • 5.10 重新审视单元测试 150
  • 5.10.1 可测试化重构 150
  • 5.10.2 第4个单元测试— setup_game_scenario 152
  • 5.11 练习 152
  • 5.11.1 重构和重新设计练习 153
  • 5.12 小结 153
  • 第6章 设计模式 154
  • 6.1 设计模式的介绍 154
  • 6.1.1 设计模式的分类 155
  • 6.2 Python语言和设计模式 156
  • 6.2.1 一级函数 157
  • 6.2.2 类作为一级对象 157
  • 6.2.3 闭包 158
  • 6.2.4 各种特性 159
  • 6.2.5 鸭子类型 160
  • 6.3 本章余下内容的结构 161
  • 6.4 快进—兽人之袭
  • v6.0.0 162
  • 6.5 策略模式 164
  • 6.5.1 策略场景—跳跃 特性 164
  • 6.5.2 策略—主要的问题 165
  • 6.5.3 策略—尝试解决 方案 166
  • 6.5.4 策略—重新考虑 设计 168
  • 6.5.5 策略方案1— 传统方法 169
  • 6.5.6 策略方案2— Python方法 172
  • 6.6 简单工厂 174
  • 6.6.1 简单工厂场景— 招募特性 174
  • 6.6.2 简单工厂— 主要的问题 175
  • 6.6.3 简单工厂—重新 考虑设计 176
  • 6.6.4 简单工厂方案1— 传统方法 177
  • 6.6.5 简单工厂方案2— Python方法 178
  • 6.7 抽象工厂模式 180
  • 6.7.1 抽象工厂场景— 饰品店 181
  • 6.7.2 抽象工厂—主要的 问题 184
  • 6.7.3 抽象工厂—重新考虑 设计 184
  • 6.7.4 抽象工厂方案— Python方法 186
  • 6.8 适配器模式 188
  • 6.8.1 适配器模型—精灵的 远房亲戚 189
  • 6.8.2 适配器—主要的 问题 189
  • 6.8.3 适配器—尝试解决 方案 190
  • 6.8.4 适配器解决方案— Python方法 191
  • 6.9 小结 194
  • 第7章 性能—识别瓶颈 195
  • 7.1 三个性能章节的总览 195
  • 7.1.1 更注重运行时的性能 195
  • 7.1.2 关于性能的第1个 章节 196
  • 7.1.3 关于性能的第2个 章节 196
  • 7.1.4 关于性能的第3个 章节 196
  • 7.1.5 看一下应用性能提升 196
  • 7.2 游戏场景—寻找黄金 197
  • 7.2.1 顶层算法 199
  • 7.2.2 查看最初的代码 200
  • 7.2.3 运行代码 202
  • 7.3 主要的问题 203
  • 7.4 识别瓶颈 204
  • 7.4.1 衡量执行时间 204
  • 7.4.2 监测代码片段的运行 时间 205
  • 7.4.3 代码分析 206
  • 7.5 内存分析 212
  • 7.5.1 memory_profiler包 212
  • 7.6 算法效率和复杂度 214
  • 7.6.1 算法效率 214
  • 7.6.2 算法复杂度 214
  • 7.7 大O符号 214
  • 7.7.1 大O复杂类 215
  • 7.8 小结 221
  • 第8章 性能优化1 222
  • 8.1 本章的前提 223
  • 8.2 本章的组织方式 223
  • 8.3 回顾“寻找黄金”的场景 224
  • 8.3.1 选择问题的数据大小 224
  • 8.3.2 分析最初的代码 224
  • 8.4 优化“寻找黄金”—
  • 第1部分 225
  • 8.4.1 调整算法—平方根 225
  • 8.4.2 跳过点操作符 228
  • 8.4.3 使用本地范围 230
  • 8.5 性能优化的一些事项 232
  • 8.5.1 列表推导式 233
  • 8.5.2 记录执行时间 234
  • 8.5.3 字典推导式 235
  • 8.5.4 交换条件块和for 循环 235
  • 8.5.5 在循环中使用try语句 236
  • 8.5.6 选择正确的数据结构 237
  • 8.5.7 collections模块 238
  • 8.5.8 生成器和生成器 表达式 241
  • 8.5.9 itertools模块 245
  • 8.6 练习 247
  • 8.7 小结 247
  • 第9章 性能优化2—NumPy和 并行化 248
  • 9.1 本章的先决条件 248
  • 9.2 本章的组织方式 248
  • 9.3 NumPy的简介 249
  • 9.3.1 安装NumPy 250
  • 9.3.2 创建数组对象 250
  • 9.3.3 简单的数组操作 251
  • 9.3.4 数组切割和索引 252
  • 9.3.5 广播 254
  • 9.3.6 其他功能 255
  • 9.3.7 从哪里能获得更多关于 NumPy的信息 262
  • 9.4 优化“寻找黄金”—
  • 第2部分 262
  • 9.4.1 “寻找黄金”优化— 优化四 262
  • 9.4.2 “寻找黄金”优化— 优化五 264
  • 9.5 使用multiprocessing模块的 并行化 267
  • 9.5.1 并行化简介 267
  • 9.5.2 全局解释器锁 268
  • 9.5.3 multiprocessing模块 268
  • 9.6 “寻找黄金”程序并行化 271
  • 9.6.1 重访黄金领地 271
  • 9.6.2 “寻找黄金”优化— 优化六,并行化 273
  • 9.7 进一步阅读 277
  • 9.7.1 JIT编译器 277
  • 9.8 小结 278
  • 第10章简单的图形应用程序 280
  • 10.1 GUI框架概述 281
  • 10.1.1 Tkinter 281
  • 10.1.2 PyQt 281
  • 10.1.3 PySide 282
  • 10.1.4 Kivy 282
  • 10.1.5 wxPython 282
  • 10.2 GUI编程设计注意事项 283
  • 10.2.1 了解用户的需求 283
  • 10.2.2 开发用户故事 283
  • 10.2.3 简单性和可访问性 283
  • 10.2.4 一致性 284
  • 10.2.5 可预测性和熟悉性 284
  • 10.2.6 其他设计考虑 284
  • 10.3 事件驱动编程 284
  • 10.3.1 事件 285
  • 10.3.2 事件处理 285
  • 10.3.3 事件循环 285
  • 10.4 使用Tkinter进行GUI 编程 286
  • 10.4.1 Tkinter的文件链接 286
  • 10.4.2 Tkinter中的 mainloop() 286
  • 10.4.3 简单GUI应用程序—
  • 第1步 287
  • 10.4.4 简单GUI应用程序—
  • 第2步 289
  • 10.4.5 Tkinter中的GUI
  • 控件 290
  • 10.4.6 布局管理 292
  • 10.4.7 Tkinter中的事件 294
  • 10.4.8 Tkinter中的事件 处理 296
  • 10.5 项目1—兽人之袭
  •  v10.0.0 298
  • 10.5.1 游戏场景 298
  • 10.5.2 问题声明 298
  • 10.5.3 编写代码 299
  • 10.5.4 运行应用程序 305
  • 10.6 MVC架构 306
  • 10.6.1 模型 307
  • 10.6.2 视图 307
  • 10.6.3 控制器 307
  • 10.6.4 MVC的好处 308
  • 10.7 项目2—兽人之袭
  •  v10.1.0 308
  • 10.7.1 重新修改HutGame类 308
  • 10.7.2 创建MVC类 309
  • 10.7.3 MVC对象间的通信 310
  • 10.7.4 查看代码 314
  • 10.7.5 Model类 315
  • 10.7.6 View类 316
  • 10.7.7 运行应用程序 317
  • 10.8 测试GUI应用程序 317
  • 10.8.1 测试注意事项 318
  • 10.9 练习 319
  • 10.10 扩展阅读 320
  • 10.11 小结 322

资源下载

资源下载地址1:https://box.lenovo.com/l/zotPSd

相关资源

网友留言